您好,欢迎访问三七文档
AnIntroductiontoDatabaseSystems数据库系统概论AnIntroductiontoDatabaseSystems第一章绪论AnIntroductiontoDatabaseSystems12.学校系校-系班级教研室系-班系-室学生班-生课程选修教员教-教指导1m学校编号学校名称系编号系名班号班级人数1m学号姓名1m课程号课程名mn成绩教研室编号教研室名称1m职工号姓名1m1m职称类别AnIntroductiontoDatabaseSystems第一章绪论AnIntroductiontoDatabaseSystems第一章绪论AnIntroductiontoDatabaseSystems13.产品零件材料仓库储存m1nnm仓库号面积Lm产品号产品名组成零件号名称材料号名称存放制造nn储存量存放量AnIntroductiontoDatabaseSystems数据库系统概论AnIntroductiontoDatabaseSystem第二章关系数据库AnIntroductiontoDatabaseSystems第二章关系数据库5.(1)πSNO(σJNO=‘J1’(SPJ))={S1,S2,S3,S4,S5}(2)πSNO(σJNO=‘J1’∧PNO=‘P1’(SPJ))={S1,S3}AnIntroductiontoDatabaseSystems第二章关系数据库5.(3)πSNO(σJNO=‘J1’(SPJ)σCOLOR=‘红’(P))或πSNO(σJNO=‘J1’∧COLOR=‘红’(SPJP))或πSNO(σJNO=‘J1’(SPJ)πPNO(σCOLOR=‘红’(P)))或πSNO(πPNO,SNO(σJNO=‘J1’(SPJ))πPNO(σCOLOR=‘红’(P)))={S1,S3}AnIntroductiontoDatabaseSystems数据库系统概论AnIntroductiontoDatabaseSystem第三章关系数据库标准语言SQLAnIntroductiontoDatabaseSystems3.建立S表S(SNO,SNAME,STATUS,CITY)。CREATETABLES(SNOchar(5)PRIMARYKEY,SNAMEchar(20),STATUSchar(5),CITYchar(10));AnIntroductiontoDatabaseSystems3.建立P表P(PNO,PNAME,COLOR,WEIGHT)。CREATETABLEP(PNOchar(5)PRIMARYKEY,PNAMEchar(20),COLORchar(10),WEIGHTsmallint);AnIntroductiontoDatabaseSystems3.建立J表J(JNO,JNAME,CITY)。CREATETABLEJ(JNOchar(5)PRIMARYKEY,JNAMEchar(20),CITYchar(10));AnIntroductiontoDatabaseSystems3.建立SPJ表SPJ(SNO,PNO,JNO,QTY)CREATETABLESPJ(SNOCHAR(5),PNOCHAR(5),JNOCHAR(5),QTYSMALLINT,PRIMARYKEY(SNO,PNO,JNO),/*主码由三个属性构成,必须作为表级完整性进行定义*/FOREIGNKEY(SNO)REFERENCESS(SNO),/*表级完整性约束条件,SNO是外码,被参照表是S*/FOREIGNKEY(PNO)REFERENCESP(PNO),/*表级完整性约束条件,PNO是外码,被参照表是P*/FOREIGNKEY(JNO)REFERENCESJ(JNO)/*表级完整性约束条件,JNO是外码,被参照表是J*/);AnIntroductiontoDatabaseSystems5.(1)找出所有供应商的姓名和所在城市。selectSNAME,CITYfromS;AnIntroductiontoDatabaseSystems5.(2)找出所有零件的名称、颜色、重量。selectPNAME,COLOR,WEIGHTfromP;AnIntroductiontoDatabaseSystems5.(3)找出使用供应商S1所供应零件的工程号码。selectdistinctJNOfromSPJwhereSNO=‘S1’;AnIntroductiontoDatabaseSystems5.(4)找出工程项目J2使用的各种零件的名称及其数量。selectPNAME,QTYfromSPJ,PwhereSPJ.PNO=P.PNOANDJNO=‘J2’;结果:PNAMEQTY螺栓100螺丝刀200凸轮100齿轮200AnIntroductiontoDatabaseSystems5.(4)找出工程项目J2使用的各种零件的名称及其数量。假设:下一刻在SPJ表中插入(S2,P2,J2,300)selectPNAME,QTYfromSPJ,PwhereSPJ.PNO=P.PNOANDJNO=‘J2’;结果:PNAMEQTY螺栓100螺丝刀200凸轮100齿轮200螺栓300PNAMEQTY螺栓400螺丝刀200凸轮100齿轮200AnIntroductiontoDatabaseSystems5.(4)找出工程项目J2使用的各种零件的名称及其数量。若要实现上述查询,则有两种方案:方案一:①createtableZQTY(PNAMEchar(20),QTYsmallint);②insertintoZQTYselectPNAME,QTYfromSPJ,PwhereSPJ.PNO=P.PNOANDJNO=‘J2’;③SelectPNAME,sum(QTY)fromZQTYgroupbyPNAME;一定不能在其后加primarykeyAnIntroductiontoDatabaseSystems5.(4)找出工程项目J2使用的各种零件的名称及其数量。若要实现上述查询,则有两种方案:方案二:①createviewZQTY1asselectPNAME,QTYfromSPJ,PwhereSPJ.PNO=P.PNOANDJNO=‘J2’;②SelectPNAME,sum(QTY)fromZQTY1groupbyPNAME;AnIntroductiontoDatabaseSystems5.(5)找出上海厂商供应的所有零件号码。selectdistinctPNOfromSPJ,SwhereSPJ.SNO=S.SNOANDCITY=‘上海’;AnIntroductiontoDatabaseSystems5.(8)把全部红色零件的颜色改成蓝色。updatePsetCOLOR=‘蓝’whereCOLOR=‘红’;AnIntroductiontoDatabaseSystems5.(9)由S5供应给J4的零件P6改为由S3供应,请作必要的修改。updateSPJsetSNO=‘S3’whereSNO=‘S5’ANDJNO=‘J4’ANDPNO=‘P6’;AnIntroductiontoDatabaseSystems5.(10)从供应商表中删除S2的记录,并从供应情况表中删除相应的记录。deletefromSwhereSNO=‘S2’;deletefromSPJwhereSNO=‘S2’;注:delete语句一次只能对一个表操作。AnIntroductiontoDatabaseSystems5.(11)请将(S2,J6,P4,200)插入供应情况表中。insertintoSPJ(SNO,JNO,PNO,QTY)values(‘S2’,’J6’,’P4’,200);或者:insertintoSPJvalues(‘S2’,’P4’,’J6’,200);AnIntroductiontoDatabaseSystems11.请为三建工程项目建立一个供应情况的视图,包括SNO、PNO、QTY。createviewSJasselectSNO,PNO,QTYfromSPJ,JwhereSPJ.JNO=J.JNOANDJNAME=‘三建’;AnIntroductiontoDatabaseSystems11.(1)找出三建工程项目使用的各种零件代码及其数量。selectPNO,sum(QTY)fromSJgroupbyPNO;AnIntroductiontoDatabaseSystems11.(2)找出供应商S1的供应情况。select*fromSJwhereSNO=‘S1’;AnIntroductiontoDatabaseSystems数据库系统概论AnIntroductiontoDatabaseSystem第六章关系数据理论AnIntroductiontoDatabaseSystems2.建立一个关于系、学生、班级、学会等诸信息的关系数据库。请给出关系模式,写出每个关系模式的极小函数依赖集,指出是否存在传递函数依赖,对于函数依赖左部是多属性的情况讨论函数依赖是完全函数依赖,还是部分函数依赖。指出各关系的候选码、外码,有没有全码存在?AnIntroductiontoDatabaseSystems2.描述学生的属性有:学号、姓名、出生年月、系名、班号、宿舍区。写成R(U,F)形式学生(学号,姓名,出生年月,系名,班号,宿舍区)(1)分析候选码:学号(2)相关的语义:一个系的学生住在同一宿舍区(3)F:{学号→姓名,学号→出生年月,学号→班号,班号→学号,班号→系名,学号→系名,系名→学号,系名→宿舍区,学号→宿舍区}所以,学生∈2NF。传递传递AnIntroductiontoDatabaseSystems2.学生(学号,姓名,出生年月,系名,班号,宿舍区)(4)需对学生表进行初步分解:学生1(学号,姓名,出生年月,班号)学生2(班号,系名,宿舍区)(5)再对学生2进行分解学生21(班号,系名)学生22(系名,宿舍区)这样,学生表被分解为学生1、学生21和学生22共3个表∈3NF∈2NF∈3NF∈3NFAnIntroductiontoDatabaseSystems2.描述班级的属性有:班号、专业名、系名、人数、入校年份。写成R(U,F)形式班级(班号,专业名,系名,人数,入校年份)(1)分析候选码:班号(2)相关的语义:一个系有若干专业,每个专业每年只招一个班,每个班有若干学生。(3)F:{班号→专业名,班号→系名,班号→人数,班号→入校年份}所以,班级∈3NF。不用分解。AnIntroductiontoDatabaseSystems2.学生(学号,姓名,出生年月,系名,班号,宿舍区)(4)需对学生表进行初步分解:学生1(学号,姓名,出生年月,班号)学生2(班号,系名,宿舍区)(5)再对学生2进行分解学生21(班号,系名)学生22(系名,宿舍区)这样,学生表被分解为学生1、学生21和学生22共3个表注:由于,在班级表中已包含有班号和系名属性,所以这里的学生21表可去掉。∈3NF∈2NF∈3NF∈3NFAnIntroductiontoDatabaseSystems2.描述系的属性有:系名、系号、系办公室地点、人数。写成R(U,F)形式系(系名,系号,系办公室地点,人数)(1)分析候选码:系号或系名(2)F:{系号→系名,系名→系号,系号←→系名,系号→系办公室地点,系号→人数}(3)所以,系∈3NF。不用分解。AnIntroductiontoDatabaseSystems2.描述学会的属性有:学会名、成立年份、地点、人数。写成R(U,F)形式学会(学会名,成立年份,地点,人数)(1)分析候选码:学会名(2)F:{学会名→成立年份,学会名→地点,学会名→人数}(3)所以,学会∈3NF。不用分解。AnIntroductiontoDatabaseSystems2.语义:每个学生可参加若干学会,每个学会有若干学生。学生参加某学会有一个入会年份。写成R(U,F)形式参加(学号,学会名,入会年份)
本文标题:数据库
链接地址:https://www.777doc.com/doc-3631869 .html