




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
...wd...wd...wd数据库系统实验报告学院计算机学院专业计算机科学与技术班级级班学号姓名指导教师〔20xx年12月〕实验__一__题目数据库及根本表的建设实验__二__题目查询数据库_实验__三__题目创立和使用视图、索引、存储过程实验__四_题目小型数据库规划设计实验平台:SQLSever2005实验题目实验一数据库及根本表的建设一、实验目的1、掌握SQLSERVER的查询分析器和企业管理器的使用;2、掌握创立数据库和表的操作;二、实验内容和要求1、分别使用SQL语句、企业管理器〔EnterpriseManager〕创立数据库;2、使用SQL语句、企业管理器〔EnterpriseManager〕创立数据库表;三、实验主要仪器设备和材料1.计算机及操作系统:PC机,Windows2000/xp;2.数据库管理系统:SQLsever2000/2003/2005;四、实验方法、步骤及结果测试创立一个教学管理数据库SC,其描述的信息有:学生信息、课程信息、教师信息、学生选课成绩、授课信息、班级信息、系部信息、专业信息。创立:student表(学生信息表)、course表〔课程信息表)、teacher表〔教师信息表)、student_course表〔学生选课成绩表)、teacher_course表〔教师上课课表〕等。1、创立数据库:确定数据库名称;数据库用于学生管理,命名为SC确定数据库的位置;要求:数据文件和日志文件分别存储在E盘自己的目录下。确定数据库的大小;根据实际的数据量确定数据文件的初始大小为30MB,日志文件的初始大小为3MB。确定数据库的增长;根据实际情况,确定数据文件按20%增长,日志文件按1MB增长。〔1〕、利用查询分析器〔QueryAnalyzer〕,使用SQL语句指定参数创立数据库;实现代码及截图:SQL语句CREATEDATABASESC_3114006159ONPRIMARY(NAME=SC_3114006159_DATA,FILENAME='E:\3114006159\SC_3114006159.mdf',SIZE=30,FILEGROWTH=20%)LOGON(NAME=SC_3114006159_LOG,FILENAME='E:\3114006159\SC_3114006159.ldf',SIZE=3,FILEGROWTH=1)查询分析器执行情况:SQL语句及执行结果截图显示2、创立根本表利用查询分析器,使用SQL语句方式创立方式将下面各表建设到教学管理数据库中。创立student表字段名代码类型约束学号s_nochar(8)主键姓名snamechar(8)非空性别sexchar(2)出生日期sbirthdaySmalldatetime学生所在院系编号dnochar(6)外键专业代码spnochar(8)外键班级编码class_nochar(4)(2)创立Course表字段名代码类型约束课程编号cnochar(10)主键课程名称cnamechar(20)非空专业代码spnochar(8)外键课程类型编号ctnotinyint理论学时lecturetinyint实验学时experimenttinyint开课学期semestertinyint课程学分credittinyint〔3〕创立student_course表字段名代码类型约束学号s_nochar(8)主键,与student表中s_no外键关联,级联删除上课编号tcidsmallint主键学生成绩scoretinyint(4)创立teacher表字段名代码类型约束教师编号t_nochar(8)主键教师姓名t_namechar(8)非空性别t_sexchar(2)出生日期t_birthdaysmalldatetime教师所在院系编号dnochar(6)外键职称tech_titlechar(10)(5)创立系部表(department)字段名代码类型约束院系编号dnochar(6)主键院系名称dept_namechar(20)非空院系负责人headerchar(8)(6)创立专业信息表(speciality)字段名代码类型约束专业代码spnochar(8)主键院系编号dnochar(6)外键,非空专业名称spnamechar(20)非空(7)创立teacher_course表字段名代码类型约束上课编号tcidsmallint主键教师编号t_nochar(8)外键专业代码spnochar(8)外键班级编码class_nochar(4)课程编号cnochar(10)非空,外键学期semesterChar(6)学年schoolyearChar(10)(8)创立班级表(class)字段名代码类型约束专业代码spnochar(8)主键,与speciality表中spno外键关联,班级编码class_nochar(4)主键,班负责人headerchar(8)查看各数据表之间的关系,生成数据库关系图。生成数据库关系图截图显示4、创立各表的实现代码及截图:SQL语句USESC_3114006159GOCREATETABLEstudent_3114006159(s_nochar(8)PRIMARYKEY,snamechar(8)NOTNULL,sexchar(2),sbirthdaysmalldatetime,dnochar(6),spnochar(8),class_nochar(4));CREATETABLEcourse_3114006159(cnochar(10)PRIMARYKEY,cnamechar(20)NOTNULL,spnochar(8),ctnotinyint,lecturetinyint,experimenttinyint,semestertinyint,credittinyint);CREATETABLEstudent_course_3114006159(s_nochar(8),tcidsmallint,scoretinyint,PRIMARYKEY(s_no,tcid));CREATETABLEteacher_3114006159(t_nochar(8)PRIMARYKEY,t_namechar(8)NOTNULL,t_sexchar(2),t_birthdaysmalldatetime,dnochar(6),tech_titlechar(10));CREATETABLEdeparment_3114006159(dnochar(6)PRIMARYKEY,dept_namechar(20) NOTNULL,headerchar(8));CREATETABLEspeciality_3114006159(spnochar(8)PRIMARYKEY,dnochar(6)NOTNULL,spnamechar(20)NOTNULL);CREATETABLEteacher_course_3114006159(tcidsmallintPRIMARYKEY,t_nochar(8),spnochar(8),class_nochar(4),cnochar(10)NOTNULL,semesterchar(6),schoolyearchar(10));CREATETABLEclass_3114006159(spnochar(8),class_nochar(4),headerchar(8),PRIMARYKEY(spno,class_no));ALTERTABLEstudent_3114006159ADDFOREIGNKEY(dno)REFERENCESdeparment_3114006159(dno);ALTERTABLEstudent_3114006159ADDFOREIGNKEY(spno)REFERENCESspeciality_3114006159(spno);ALTERTABLEcourse_3114006159ADDFOREIGNKEY(spno)REFERENCESspeciality_3114006159(spno);ALTERTABLEstudent_course_3114006159ADDFOREIGNKEY(s_no)REFERENCESstudent_3114006159(s_no);ALTERTABLEteacher_3114006159ADDFOREIGNKEY(dno)REFERENCESdeparment_3114006159(dno);ALTERTABLEspeciality_3114006159ADDFOREIGNKEY(dno)REFERENCESdeparment_3114006159(dno);ALTERTABLEteacher_course_3114006159ADDFOREIGNKEY(t_no)REFERENCESteacher_3114006159(t_no);ALTERTABLEteacher_course_3114006159ADDFOREIGNKEY(spno)REFERENCESspeciality_3114006159(spno);ALTERTABLEteacher_course_3114006159ADDFOREIGNKEY(cno)REFERENCEScourse_3114006159(cno);ALTERTABLEclass_3114006159ADDFOREIGNKEY(spno)REFERENCESspeciality_3114006159(spno);查询分析器执行情况:SQL语句及执行结果截图显示5、利用查询分析器修改上述各表。(1)、用INSERT语句向各个表中插入数据录入5条记录。录入时注意体会外键约束。实现代码及截图:查询分析器执行情况:SQL语句及执行结果显示insertintodeparment_3114006159values('659801','计算机','周杰伦');insertintodeparment_3114006159values('659802','机电','陈奕迅');insertintodeparment_3114006159values('659803','外国语','章子怡');insertintodeparment_3114006159values('659804','土木','梁朝伟');insertintodeparment_3114006159values('659805','环境','张国荣');insertintoteacher_3114006159values('65980101','刘德华','男','1975-03-25','659801','高级');insertintoteacher_3114006159values('65980201','周润发','男','1964-09-24','659802','高级');insertintoteacher_3114006159values('65980301','张学友','男','1956-06-15','659803','高级');insertintoteacher_3114006159values('65980401','张曼玉','女','1965-04-21','659804','高级');insertintoteacher_3114006159values('65980501','陈坤','男','1988-03-02','659805','高级');insertintospeciality_3114006159values('65980110','659801','计算机科学与技术');insertintospeciality_3114006159values('65980210','659802','自动化');insertintospeciality_3114006159values('65980310','659803','商务英语');insertintospeciality_3114006159values('65980410','659804','土木工程');insertintospeciality_3114006159values('65980510','659805','环境工程');insertintoclass_3114006159values('65980110','1401','刘德华');insertintoclass_3114006159values('65980210','1402','周润发');insertintoclass_3114006159values('65980310','1403','张学友');insertintoclass_3114006159values('65980410','1404','张曼玉');insertintoclass_3114006159values('65980510','1405','陈坤');insertintocourse_3114006159values('6598011001','数据库','65980110',1,48,12,1,2);insertintocourse_3114006159values('6598021001','制图','65980210',2,56,6,2,2);insertintocourse_3114006159values('6598031001','口语','65980310',3,48,0,1,4);insertintocourse_3114006159values('6598041001','建筑学','65980410',4,48,12,1,2);insertintocourse_3114006159values('6598051001','根基化学','65980510',5,48,12,1,2);insertintoteacher_course_3114006159values(1,'65980101','65980110','1401','6598011001','一学期','第二学年');insertintoteacher_course_3114006159values(2,'65980201','65980210','1402','6598021001','一学期','第二学年');insertintoteacher_course_3114006159values(3,'65980301','65980310','1403','6598031001','一学期','第二学年');insertintoteacher_course_3114006159values(4,'65980401','65980410','1404','6598041001','一学期','第二学年');insertintoteacher_course_3114006159values(5,'65980501','65980510','1405','6598051001','一学期','第二学年');insertintostudent_3114006159values('31140001','王小波','男','1997-01-03','659801','65980110','1401');insertintostudent_3114006159values('31140002','韩寒','男','1992-03-23','659802','65980210','1402');insertintostudent_3114006159values('31140003','莫言','男','1997-06-15','659803','65980310','1403');insertintostudent_3114006159values('31140004','三毛','女','1994-05-30','659804','65980410','1404');insertintostudent_3114006159values('31140005','郭敬明','男','1995-12-03','659805','65980510','1405');insertintostudent_course_3114006159values('31140001',1,96);insertintostudent_course_3114006159values('31140002',3,67);insertintostudent_course_3114006159values('31140003',2,91);insertintostudent_course_3114006159values('31140004',4,89);insertintostudent_course_3114006159values('31140005',5,96);实验结果截图显示〔插入数据的表格〕共8组〔共8个表〕(2)、用UPDATE语句更改student表中数据;实现代码:useSC_3114006159updatestudent_3114006159setsname='村上春树'wheresname='莫言'student表更改前的内容截图显示查询分析student表更改后的内容截图显示(3)、用DELETE语句删除student表中数据;实现代码:useSC_3114006159deletefromstudent_course_3114006159wheres_noin(selects_nofromstudent_3114006159wheresname='郭敬明');deletefromstudent_3114006159wheresname='郭敬明'student表更改前的内容截图显示查询分析student表更改后的内容截图显示五、实验中出现的问题及解决方案在插入数据时没注意外键约束,结果导致插入失败,于是根据数据表关系图先插入没有外键约束的表,再根据外键约束关系按照一定顺序插入表。在删除student的元组时,因为其主键被student_course表外键所参照,所以无法删除,于是先删除student_course表中的元组,再删除student中的元组。六、思考题说明数据库中的表和数据文件的关系。答:表存储于数据文件中,一个数据文件可以存储多个表。数据库中的日志文件能否单独修改?不能,SQLServer数据库都有log日志文件,log日志文件记录用户对数据库修改的操作,只有数据库发生更改时,日志文件才会发生更改,不能单独更改。附加练习题.(代码以及运行结果采用截图显示)(1)将计算机专业所有学生的数据库原理的成绩增加10分代码以及运行结果:(2)删除计算机专业所有学生的数据库原理的选修信息代码以及运行结果:(3)为speciality的spname添加唯一约束代码以及运行结果:(4)为student_course的score设置检查约束代码以及运行结果:实验题目实验二查询数据库一、实验目的熟悉SQL语句的根本使用方法,学习若何编写SQL语句来实现查询1、掌握根本的SELECT查询及其相关子句的使用;2、掌握复杂的SELECT查询,如多表查询、子查询、连接查询和嵌套查询。二、实验内容和要求使用SQL查询分析器查询数据,练习查询语句的使用,掌握SELECT语句的完整构造,包括简单查询、嵌套查询、连接查询等根本实现方法,掌握存储查询结果的方法,体会各种查询的异同及相互之间的转换,体会各种查询的执行过程,为简单综合应用打下良好的根基。三、实验主要仪器设备和材料1.计算机及操作系统:PC机,Windows2000/xp;2.数据库管理系统:SQLsever2000/2003/2005;四、实验方法、步骤及结果测试要求用SELECT完成以下查询,1、对实验一建设的数据库表进展查询简单查询:〔1〕、查询全部学生的学号、姓名、性别和出身年月日。实现代码及查询结果截图:格式如下查询分析器执行情况:SQL语句及执行结果显示useSC_3114006159selects_no,sname,sex,sbirthdayfromstudent_3114006159查询结果截图显示〔2〕、查询全体学生的学号、姓名和年龄实现代码及查询结果截图:useSC_3114006159selects_no,sname,sex,year(getdate())-year(sbirthday)fromstudent_3114006159〔3〕、查询院系编号为‘510000’〔计算机学院〕的全部学生的学号、姓名、性别和出身年月日。实现代码及查询结果截图:useSC_3114006159selects_no,sname,sex,sbirthdayfromstudent_3114006159wheredno='659801'〔4〕、查询“计算机科学与技术〞专业〔专业代码为‘080605’〕并且班级代码为‘0201’的学生的学号、姓名和出生日期。实现代码及查询结果截图:useSC_3114006159selects_no,sname,sbirthdayfromstudent_3114006159wherespno='65980110'andclass_no='1401'〔5〕、查询在‘1983/01/10’以后出生的计算机学院〔院系编号为‘510000’〕学生的学号、姓名、性别和出身年月日。实现代码及查询结果截图:useSC_3114006159selects_no,sname,sex,sbirthdayfromstudent_3114006159wheredno='659801'andsbirthday>'1983-01-10'〔6〕、查询全部学生的学号、姓名、性别和出身日期结果按照出生日期的升序排列。实现代码及查询结果截图:useSC_3114006159selects_no,sname,sex,sbirthdayfromstudent_3114006159orderbysbirthday连接查询:〔1〕、查询全部学生的学号、姓名、性别、所在院系名称和专业名称实现代码及查询结果截图:useSC_3114006159selects_no,sname,sex,dept_name,spnamefromstudent_3114006159,deparment_3114006159,speciality_3114006159wherestudent_3114006159.dno=deparment_3114006159.dnoanddeparment_3114006159.dno=speciality_3114006159.dno〔2〕、查询选修了课程1〔上课编号〕的学生的学号、姓名、专业名称和这门课的成绩实现代码及查询结果截图:useSC_3114006159selectstudent_3114006159.s_no,sname,spname,scorefromstudent_3114006159,student_course_3114006159,speciality_3114006159wherestudent_3114006159.s_no=student_course_3114006159.s_noand student_3114006159.spno=speciality_3114006159.spnoandtcid=1〔3〕、查询学生不及格的情况列出不及格学生的学号、姓名和不及格的课程名称。实现代码及查询结果截图:useSC_3114006159selectstudent_3114006159.s_no,sname,cnamefromstudent_3114006159,student_course_3114006159,course_3114006159wherestudent_3114006159.s_no=student_course_3114006159.s_noandstudent_course_3114006159.tcid=course_3114006159.ctnoandscore<60嵌套查询:〔1〕、查询没有选修了课程1的学生,列出学生的学号和姓名。实现代码及查询结果截图:useSC_3114006159selectdistinctstudent_3114006159.s_no,snamefromstudent_3114006159,student_course_3114006159wherestudent_3114006159.s_nonotin( selects_no fromstudent_course_3114006159 wheretcid=1)〔2〕、查询每门课都是80分以上的学生的学号与姓名。实现代码及查询结果截图:useSC_3114006159selectdistinctstudent_3114006159.s_no,snamefromstudent_3114006159wherenotexists( select* fromstudent_course_3114006159 wherestudent_3114006159.s_no=student_course_3114006159.s_noandscore<80)2、选用Northwind数据库进展查询〔1〕、对NothWind.Products表进展简单查询;在查询分析器在窗口下用SELECT语句以下局部查询结果截图由于表格过长,所以只截取了局部表格内容,无法完整截图整个表格。完成单表查询:查询所有Products的详细记录;实现代码及查询结果截图:useNorthwindselect*fromProducts查询单价〔UnitPrice〕小于20的Products;实现代码及查询结果截图:useNorthwindselect*fromProductswhereUnitPrice<20查询Products中最高单价〔UnitPrice〕是多少;实现代码及查询结果截图:useNorthwindselectmax(UnitPrice)fromProducts〔2〕、在查询分析器在窗口下用SELECT语句完成连接〔嵌套〕查询:查询所有被订购过得Products的ProductsID和ProductName;实现代码及查询结果截图:useNorthwindselectdistinctProducts.ProductID,Products.ProductNamefromProducts,[OrderDetails]whereProducts.ProductID=[OrderDetails].ProductID查询所有被CustomerID为AROUT客和订购过的ProductsID和ProductName;实现代码及查询结果截图:useNorthwindselectProducts.ProductID,Products.ProductNamefromProducts,[OrderDetails],OrderswhereProducts.ProductID=[OrderDetails].ProductIDand [OrderDetails].OrderID=Orders.OrderIDandCustomerID='AROUT'查询所有被CustomerID为AROUT客和订购过,且单价在20以上的ProductsID和ProductName;实现代码及查询结果截图:useNorthwindselectProducts.ProductID,Products.ProductNamefromProducts,[OrderDetails],OrderswhereProducts.ProductID=[OrderDetails].ProductIDand [OrderDetails].OrderID=Orders.OrderIDandCustomerID='AROUT'andProducts.UnitPrice>20查询Products中单价〔UnitPrice〕最高的Products的资料;实现代码及查询结果截图:useNorthwindselect*fromProductswhereUnitPrice>=all(selectUnitPricefromProducts);五、实验中出现的问题及解决方案六、思考题连接查询分哪几类各有什么特点答:连接查询可分为:等值连接与非等值连接:当where子句中的连接运算符为=时,称为等值连接,使用其它运算符为非等值连接。自然连接:在等值连接中把目标列中重复的属性列去掉那么为自然连接。自身连接:一个表与自身连接,称为表的自身连接。外连接:两表连接时不存在公共属性上值相等的元组也保存在结果关系中,而在其他属性上填空值〔NULL〕,那么连接就叫外连接。多表连接:两个表以上连接为多表连接。进展连接查询时应注意哪些问题答:连接查询时应注意选择正确的连接谓词。实验题目实验三创立和使用视图、索引、存储过程一、实验目的1、理解视图、索引、存储过程的定义、索引、存储过程的优点与、索引、存储过程的工作原理;2、掌握在查询分析器和企业管理器中创立、修改及删除视图、索引、存储过程;3、掌握创立视图、索引、存储过程的SQL语句的用法;并能够熟练利用视图向表中插入、删除和修改数据。4、掌握使用视图来查询数据。二、实验主要仪器设备和材料1.计算机及操作系统:PC机,Windows;2.数据库管理系统:SQLServer2005;三、实验方法、步骤及结果测试〔一〕、视图1、建设“计算机学院〞的学生根本情况视图ies_student_view,该视图包括计算机学院所有学生的学号、姓名、性别、出身年月、专业名称。2、执行ies_student_view视图并观察结果。3、建设课程1〔上课编号〕的学生名册的视图,该名册包括学生的学号、姓名、专业名称和这门课的成绩;并查询结果。4、建设统计不及格情况的视图,列出不及格学生的学号、姓名和不及格的课程代码;5、执行视图并观察结果。6、修改视图ies_student_view,使该视图包括所有学生的学号、姓名、性别、出身年月、学院名称、专业名称。7、执行ies_student_view视图并观察结果。8、删除视图ies_student_view。并查询结果。记录上述实验过程并截图说明。查询分析器执行情况:创立视图的SQL语句及执行结果显示1查询视图SQL语句及执行结果截图2查询分析器执行情况:创立视图的SQL语句及执行结果显示3、4、查询视图SQL语句及执行结果截图5、查询分析器执行情况:修改视图的SQL语句及执行结果显示6、查询视图SQL语句及执行结果截图7、查询分析器执行情况:删除视图的SQL语句及执行结果显示8、查询视图SQL语句及执行结果截图〔二〕、索引在student_course表〔学生选课表〕的学生学号〔sno〕列上创立索引sc_sno_index查询分析器执行情况:创立索引的SQL语句及执行结果显示〔三〕、存储过程题目〔1〕创立存储过程list_student_department,该存储过程接收学院代码作为输入参数,列出数据库sc中某个院系学生的全部信息。查询分析器执行情况:SQL语句CREATEPROCEDURElist_student_department_3114006159@indnochar(6)ASSELECT*FROMstudent_3114006159WHEREdno=@indno执行结果截图显示题目〔2〕使用SQL语句执行存储过程list_student_department查询分析器执行情况:SQL语句EXEClist_student_department_3114006159@indno='659801'执行结果截图显示题目〔3〕编写存储过程将某班选修某门课程的所有学生的学号和上课编号插入到student_course表中查询分析器执行情况:SQL语句CREATEPROCEDUREinsert_student_course_3114006159(@cnochar(8),@class_nochar(4),@tcidinteger)ASINSERTINTOstudent_course_3114006159(tcid,s_no)SELECT@tcid,s_noFROMstudent_3114006159,course_3114006159WHERE cno=@cnoANDclass_no=@class_no ANDs_nonotIN(SELECTs_no FROMstudent_course_3114006159 WHEREtcid=@tcid)执行结果截图显示题目〔4〕使用SQL语句执行〔3〕创立的存储过程查询分析器执行情况:SQL语句EXECinsert_student_course_3114006159@cno='6598011001',@class_no='1401',@tcid=1执行结果截图显示题目〔5〕使用SQL语句查看〔3〕创立的存储过程代码查询分析器执行情况:SQL语句EXECsp_helptextlist_student_department_3114006159执行结果截图显示题目〔6〕使用SQL语句删除一个前面建设的存储过程查询分析器执行情况:SQL语句DROPPROCEDUREinsert_student_course_3114006159执行结果截图显示四、实验中出现的问题及解决方案无五、思考题 1、视图更新的优点答:1.视图可以简化用户的操作。2.视图能使用户能以多种角度对待同一数据。3.视图对重构数据提供了一定程度的逻辑独立性。4.视图能够对机密数据提供安全保护。5.适当利用视图可以更加清晰的表达查询。2、哪些视图是可以更新的哪些视图是不可以更新的针对实验举例说明。答:一般的,行列子集视图时可更新的,除行列子集视图外,理论上有些视图也是可以更新的,但它们确实切特征还是尚待研究的课题。还有其他的视图从理论上就是不可更新的,比方,视图的属性来自聚集函数、表达式,那么该视图肯定是不可更新的。在上述实验中ies_student_view_3114006159视图是可以更新的,其视图更新既是对student_3114006159表的更新。3、什么是存储过程,什么是触发器,两者有什么区别答:触发器与存储过程可以说是非常相似,可以说是一种变种的存储过程,触发器和存储过程一样都是SQL语句集,通常通过创立触发器来强制实现不同表中的逻辑相关数据的引用完整性和一致性。由于用户不能绕过触发器,所以可以用它来强制实施复杂的业务规那么,以确保数据的完整性。触发器不同于存储过程,触发器主要是通过事件执行触发而被执行的,而存储过程可以通过存储过程名称名字而直接调用4、teacher_course表中的class_no是否是外码请说明判断的理由。答:不是外码,因为class_no并不是其它表的主键,也不包含外键,所以它不是外码。5、teacher_course表中的class_no应该与class表中的class_no建设对应关系,即第一、当向teacher_course表中插入一条元组时,必须保证class_no是class表中的class_no;第二、当删除或修改class表中的class_no时,teacher_course表中的class_no也应该随之变化或不允许变化。请用触发器完成上述要求。第一:第二:实验题目实验四小型数据库规划设计实验目的学习数据库原理及应用目的就是能创立和管理一个真实的数据库,通过规划设计一个小型数据库系统。让学生掌握数据库规划设计的根本技术,熟悉数据库的设计的根本方法和步骤,明白数据库设计各阶段的任务,加深对数据库系统概念和特点的理解。实验内容和要求根据你熟悉的实际情况,选一个小型的数据库应用工程,销售管理系统,进展系统分析和数据库设计。要求:1、规划设计一个小型系统的数据库,按照给定要求,对各设计阶段进展描述,要求给出数据库设计的E-R图,并将E-R图转换成相应的模型,编制SQL命令脚本。2、要求:数据库构造严谨、根本表及属性合理、各种约束条件正确。3、涉及的内容或知识点:数据库设计的需求分析、数据模型、关系标准化理论。4、采用的方法和手段:设计数据模型、进展关系标准化处理和用软件实现数据库的构建。实验主要仪器设备和材料1.计算机及操作系统:PC机,WindowsXP;2.数据库管理系统:SQLsever2000/2003/2005实验方法、步骤及构造测试〔一〕、数据库设计1、销售管理系统数据库包括客户数据、商品数据和订单数据。2、确定销售管理系统中的实体及其属性3、建设销售管理系统的E-R图4、设计销售管理系统数据库Sales5、设计customer表〔客户表〕、supplier表〔供给商表〕、goods表〔商品信息表〕、orader表里〔订单表〕、creditgrade表〔信誉等级表〕和goodstype表〔商品类型表〕的构造。6、确定以上各表的关键字及字段数据类型。〔二〕、创立数据库和表1、创立Sales数据库2、创立customer表〔客户表〕、supplier表〔供给商表〕、goods表〔商品信息表〕、orader表里〔订单表〕、creditgrade表〔信誉等级表〕和goodstype表〔商品类型表〕3、分别向以上各表输入入数据〔三〕、设计数据完整性1、定义customer表〔客户表〕、supplier表〔供给商表〕、goods表〔商品信息表〕、order表里〔订单表〕、creditgrade表〔信誉等级表〕和goodstype表〔商品类型表〕的主键2、定义以上各表的外键约束3、定义唯一性约束〔四〕、创立和使用视图1、创立一个包含广州客户信息的视图customer_guangzhou2、创立一个视图ordersum_goods,其中的内容是每种商品的名称和每种商品的订单金额的总和。〔五〕、创立和执行存储过程1、创立一个存储过程proc_hub,用来查看“hub〞商品的所有订货情况2、创立一个带参数的存储过程proc_gooods,参数为商品名称,通过该存储过程可查看任何指定商品订单信息。五、实验报告要求建设系统的E-R图2、列出设计的数据库表customer表:字段名代码类型约束姓名cnamechar(8)非空客户编号cnochar(6)主键地区cregionchar(10)非空信誉等级cgradeint外键supplier表:字段名代码类型约束供给商名称snamechar(10)非空供给商编号snochar(8)主键goods表:字段名代码类型约束商品名称gnamechar(20)非空商品编号gnochar(8)主键商品类型编号gtype_nochar(10)外键供给商编号snochar(8)外键价格gpriceint大于0order表:字段名代码类型约束订单号order_nochar〔10〕主键客户编号cnochar(6)外键order_goods表:字段名代码类型约束订单号order_nochar(10)主键,外键商品编号gnochar(8)主键,外键商品数量goods_numint大于0总金额amountint等于数量乘单价creditgrade表:字段名代码类型约束等级名称grade_namechar(8)非空信誉等级cgradeint主键goodstype表:字段名代码类型约束商品类型名gtype_namechar(10)非空类型编号gtype_nochar(10)主键生成数据库关系图查询customer_guangzhou视图,获得广州客户信息。〔截图显示〕5、查询ordersum_goods视图,获得每种商品的名称和每种商品的订单金额的总和。〔截图显示〕6、执行存储过程并观察结果。〔截图显示〕7、代码附录〔列出所有的SQL语句,并标注每段代码的功能,宋体五号字,分栏打印〕//创立数据库CREATEDATABASESALES_3114006159ONPRIMARY(NAME=SALES_3114006159_DATA,FILENAME='G:\3114006159\SALES_3114006159.mdf',SIZE=30,FILEGROWTH=20%)LOGON(NAME=SC_3114006159_LOG,FILENAME='G:\3114006159\SALES_3114006159.ldf',SIZE=3,FILEGROWTH=1)//创立表USESALES_3114006159GOcreatetablecustomer (cnamechar(8)notnull, cnochar(6)primarykey, cregionchar(10)notnull, cgradeint);createtablesupplier (snamechar(10), snochar(8)primarykey)createtablegoods (gnamechar(20)notnull, gnochar(8)primarykey, gtype_nochar(10), snochar(8), gpriceint);createtable[order] (order_nochar(10)primarykey, cnochar(6));createtableorder_goods (order_nochar(10), gnochar(8), goods_numint, amountint, primarykey(order_no,gno));createtablecreditgrade (grade_namechar(8)notnull, cgradeintprimarykey);createtablegoodstype (gtype_namechar(10)notnull, gtype_nochar(10)primarykey);ALTERTABLEcustomerADDFOREIGNKEY(cgrade)REFERENCEScreditgrade(cgrade); ALTERTABLEgoodsADDFOREIGNKEY(gtype_no)REFERENCESgoodstype(gtype_no);ALTERTABLEgoodsADDFOREIGNKEY(sno)REFERENCESsupplier(sno);ALTERTABLE[order]ADDFOREIGNKEY(cno)REFERENCEScustomer(cno);ALTERTABLEorder_goodsADDFOREIGNKEY(order_no)REFERENC
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电线产品知识培训总结课件
- 电瓶车电池知识培训内容课件
- 电焊维修技能知识培训课件
- 北京住房租赁考试题库及答案
- 1-Methyllysergol-d3-生命科学试剂-MCE
- 高中地理人教版必修一1.1 地球的宇宙环境 课件
- 家庭考试题及答案老版
- 保定教师考试题型分布及答案
- 酿酒考试题及答案
- 电热水器安全知识培训课件
- 树立正确的人生价值观课件
- 《国际商务单证》课件
- 防腐保温工程监理实施细则
- 园林绿化工知识考试题库及答案
- 2022版ISO27001信息安全管理体系基础培训课件
- 法律事务所信息安全管理制度
- 论高校思政教育宏大叙事的有效性建构
- 塔吊拆卸安全专项施工方案
- 消防救援大队专职消防员政审表
- DB3305-T 271-2023特定地域单元生态产品价值评估技术规范
- 赣州市建兴控股投资集团有限公司招聘笔试题库2024
评论
0/150
提交评论