数据库和表数据库表的基本操作和表级约束约束条件-实验报告
- 格式:doc
- 大小:1.13 MB
- 文档页数:15
数据库系统概论实验指导(第七版)计算机学院2013/09改版履历目录目录 (3)1.实验概要 (4)1.1.实验说明 (4)1.2.实验环境和配置 (4)1.3.上机要求 (5)2.实验1:数据库/表的基本操作和表级约束 (5)2.1.目的和要求 (5)2.2.实验准备 (5)2.3.实验内容 (5)3.实验2:库级约束和基本表的数据操作 (8)3.1.目的和要求 (8)3.2.实验准备 (8)3.3.实验内容 (8)4.实验3:视图操作和安全性控制 (10)4.1.目的和要求 (10)4.2.实验准备 (10)4.3.实验内容 (10)5.实验4:存储过程/触发器/ODBC数据库编程 (12)5.1.目的与要求 (12)5.2.实验准备 (12)5.3.实验内容 (12)6.实验5:数据库综合实验 (14)6.1.目的与要求 (14)6.2.实验准备 (14)6.3.实验内容 (15)5.3.1.题目一:零件交易中心管理系统 (15)5.3.2.题目二:图书管理系统 (15)5.3.3.题目三:民航订票管理系统 (15)5.3.4.题目四:学生学籍管理系统 (16)5.3.5.题目五:车站售票管理系统 (16)5.3.6.题目六:企业人事管理系统 (16)5.3.7.题目七:电话交费管理系统 (16)5.3.8.题目八:医药销售管理系统 (17)7.附录:实验报告格式 (18)1.实验概要1.1.实验说明内容:本课程实验分5次完成,每次完成一部分。
具体内容参考本指导的后半部分。
成绩:每次实验100分,最后取5次实验的加权平均分作为实验的总成绩,其中第五次实验占40%,其余各次占15%。
每次实验中各个环节的评分标准如下:上述每一项按照百分制给出分值,最后按照比率计算每次实验的最终成绩。
实验报告每次实验需提交电子版的实验报告(最后一次实验需提交设计文档,源程序等相关资料)。
每次实验结束时,将写好的实验报告,提交给各班辅导老师。
表之间的约束关系随着现代信息化技术的飞速发展,数据库的应用越来越广泛。
在一个数据库中,有多个表,表与表之间存在着各种约束关系。
这些约束关系是数据库设计中必不可少的一部分,它们帮助我们保证数据的正确性和完整性。
本文将从以下几个方面来介绍表之间的约束关系。
一、主外键约束主外键约束是表之间常见的一种约束关系,它可以保证数据在不同表之间的一致性。
具体来说,如果表A中某个字段是作为主键,而此字段在表B中作为外键与表A中定义的主键相互关联,那么表B中的数据必须与表A的数据保持一致。
这种关系通常被称为“父子”关系,其中表A是“父表”,表B是“子表”。
如果试图向表B中插入一条与表A 中定义的主键不匹配的记录,就会导致插入失败,并返回错误提示信息。
二、唯一约束唯一约束是一种保证数据唯一性的约束关系。
在一个表中,可以对某些字段进行唯一性约束,这样就可以避免在插入或更新记录时出现重复数据。
如果试图向一个已经存在相同值的唯一字段中插入数据,就会报错。
值得注意的是,一个表可以有多个唯一约束。
三、检查约束检查约束是一种声明式的约束,可以为一个表中某些字段设置一些限制条件。
例如,可以定义一个检查约束,使得一个表中的某个字段只允许存储特定的数值范围。
如果试图在插入或更新记录时违反了这个限制条件,就会返回错误提示信息。
四、默认约束默认约束是一种设置字段默认值的约束关系。
如果在插入记录时没有给字段赋值,就会使用默认值代替。
也可以在更新记录时使用默认值。
默认值可以是一个数字、一个字符串、一个日期或其他类型的值。
五、级联操作级联操作是指在父表和子表之间进行删除或更新操作时,一起进行的相关操作。
级联删除可以在删除父表中的一个记录时自动删除子表中相关的记录。
级联更新可以在更新父表中的一个记录时自动更新子表中相关的记录。
需要注意的是,级联操作应该谨慎使用,以免误操作导致数据的不一致性。
六、触发器触发器是在特定事件发生时自动执行的一些操作。
在数据库中,触发器常常用于实现复杂的限制约束和业务逻辑。
数据库实验报告姓名学号目录一.实验标题:2二.实验目的:2三.实验内容:2四.上机软件:3五.实验步骤:3(一)SQL Server 2016简介3(二)创建数据库 4(三)创建数据库表 7(四)添加数据17六.分析与讨论: 19一.实验标题:创建数据库和数据表二.实验目的:1.理解数据库、数据表、约束等相关概念;2.掌握创建数据库的T-SQL命令;3.掌握创建和修改数据表的T-SQL命令;4.掌握创建数据表中约束的T-SQL命令和方法;5.掌握向数据表中添加数据的T-SQL命令和方法三.实验内容:1.打开“我的电脑”或“资源管理器”,在磁盘空间以自己的姓名或学号建立文件夹;2.在SQL Server Management Studio中,使用create database命令建立“学生-选课”数据库,数据库文件存储在步骤1建立的文件夹下,数据库文件名称自由定义;3.在建立的“学生-选课”数据库中建立学生、课程和选课三张表,其结构及约束条件如表所示,要求为属性选择合适的数据长度;4.添加具体数据;四.上机软件:SQL Server 2016五.实验步骤:(一)SQL Server 2016简介1.SQL Server 2016的界面2.启动和退出SQL Server 20161)双击图标,即出现SQL Server2016的初始界2)选择“文件”菜单中的“退出”命令,或单击控制按钮中的“×”即可注意事项:1.在退出SQL Server 2016之前,应先将已经打开的数据库进行保存,2.如果没有执行保存命令,系统会自动出现保存提示框,根据需要选择相应的操作(二)创建数据库方法一:1.点击“新建查询”,出现如下对话框2.在空白区域输入创建数据库“学生选课”的代码命令,点击“执行”3.消息框中出现“命令已成功完成”即表示数据库创建成功,在“对象资源管理器”中,右击“数据库”,打开快捷菜单,选择“刷新”命令,在“数据库”向下会出现新创建的数据库“学生选课”方法二:1.右击数据库,在弹出的快捷菜单中选择“新建”2.在弹出的对话框中输入“学生选课”3. 在“对象资源管理器”中,右击“数据库”,打开快捷菜单,选择“刷新”命令,在“数据库”向下会出现新创建的数据库“学生选课”注意事项:数据库名称在服务器中必须唯一,并且符合标识符的规则(三)创建数据库表1.左键点击“学生选课”数据库,再点击“新建查询”,在出现的空白对话框中输入如图代码后点击“执行”,消息框中出现“命令已成功执行”即成功建立好学生、课程、选课三张表2.建立成功后的表格如图所示注意事项:1.T-SQL中创建数据库表的指令格式为:Create table 表名(字段名1 数据类型{identify | not null | null},字段名2 数据类型{identify | not null | null},……)null表示该字段的值可以为控制,空值意味着没有任何存储数据,这是默认参数,当所定义的字段允许空值时,参数null可以忽略not null表示该字段的值不能为空值identify称为计数器,表示该字段的值是一组递增的证书数据。
实验五约束默认和规则1、约束在数据库中的应用(1)用系统存储过程sp_helpconstraint查看student表的约束。
(2)在新建查询中输入插入一个学生信息的命令:insert into student(SNO,Sname,Sex,ClsNO,StuAddr,Birthday,Height)values('19920101','王军','男','CS01','下关#','1976.12.21',1.76),观察其结果。
修改SNO的值,将其值修改为’19000001’,其他的值保持不变,再插入一次,观察其结果。
(3)修改studeng表,使用Check约束,使性别列只能接受“男”或“女”,以强制执行域数据完整性。
重做(1),观察其结果。
(4)禁止student表中的sex列上的约束:alter table student nocheck constraint ck_student(5)删除约束:alter table student drop constraint ck_xsqk。
重做(1)。
(6)利用关系图,建立student表与course表与grade表的主外键约束。
2、默认的应用(1)创建默认对象:default_birthday,默认值为’1982-1-1’。
CREATE DEFAULT default_birthday AS ‘1982-01-01’(2)利用系统存储过程sp_bindefault将default_birthday绑定到student表的Birthday列上。
(3)利用系统存储过程sp_unbindefault解除student表的Birthday列上的默认值绑定。
(4)删除默认值:DROP DEFAULT default_birthday(5)定义一个默认值为4的Default_Value,并将它绑定到course表的Credit列上,绑定后给course插入数据行,观察默认值的设置情况,使用完毕后,解除并删除绑定。
实验三、四 创建表及输入数据及完整性约束本实验需要4学时。
一、实验目的要求学生熟练掌握和使用Transact-SQL、SQL Server企业管理器创建表、索引和修改表结构,并学会使用SQL Server 查询分析器接收Transact-SQL语句和进行结果分析。
学生熟练掌握使用 SQL、Transact-SQL和SQL Server企业管理器向数据库输入数据、修改数据和删除数据的操作。
二、实验内容1 创建表、确定表的主码和约束条件。
为主码建索引。
2 查看和修改表结构。
3 输入数据、修改数据和删除数据三、实验步骤(1)通过企业管理器,在建好的图书借阅数据库中建立图书、读者和借阅3个表,其结构为;图书(书号,类别,出版社,作者,书名,定价,作者).读者(编号,姓名,单位,性别,电话).借阅(书号,读者编号,借阅日期)要求为属性选择合适的数据类型,定义每个表的主码.是否允许空值和默认值等列级数据约束。
(2)在企业管理器中建立图书、读者和借阅3个表的表级约束.每个表的主码约束.借阅表与图书表间、借阅表与读者表之间的外码约束,要求按语义先确定外码约束表达式.再通过操作予以实现.实现借阅表的书号和读者编号的惟一性约束:实现读者性别只能是“男”或“女”的Check(检查)约束。
(3)通过企业管理器,在图书借阅数据库的图书、读者和借阅3个表中各输入10条记录。
要求记录不仅满足数据约束要求.还要有表间关联的记录。
(4)通过企业管理器实现对图书借阅数据库的图书、读者和借阅3个表中数据的插入。
删除和修改操作。
(5)通过企业管理器实现对学生选课库的数据增加、数据删除和数据修改操作、要求学生、课程和选课表中各有10条以上的记录。
四、实验方法1 新建表在 SQL Serve 2000的数据库中,文件夹是按数据库对象的类型建立的.文件夹名是该数据库对象名。
当在企业管理器中选择服务器和数据库文件夹,并打开已定义好的图书.读者数据库后,会发现它自动设置了关系图、表、视图、存储过程、用户、角色、规则、默认等文件夹。
南京信息工程大学实验(实习)报告实验(实习)名称数据库和表的创建与管理实验(实习)日期得分指导教师系计算机专业计算机科学与技术年级班次姓名学号一、实验目的1.熟悉S QL Server 2005 中S QL Server Management Studio 的环境。
2.了解S QL Server 2005 数据库的逻辑结构和物理结构。
3.掌握使用向导创建和删除数据库的方法。
4.掌握使用S QL 语句创建和删除数据库。
5.了解表的结构特点,了解SQL Server 的基本数据类型,管理器创建表,会用T-SQL语句创建表。
6.管理器中修改表的定义,使用SQL语句修改表的定义。
二、实验内容内容一:使用向导创建和删除数据库。
内容二:使用SQL 语句创建和删除数据库。
内容三:用向导和SQL 语句创建和删除表。
‘内容四:修改数据库基本表的定义。
三、实验步骤内容一:设有一学籍管理系统,其数据库名为“EDUC”,初始大小为10MB,最大为50MB,数据库自动增长,增长方式是按5%比例增长;日志文件初始为2MB,最大可增长到5MB,按1MB 增长。
数据库的逻辑文件名为“student_data”, 物理文件名为“student_data.mdf,存放路径为“E:\sql_data”。
日志文件的逻辑文件名为“student_log”, 物理文件名为“student_log.ldf”,存放路径为“E:\sql_data”。
(1)使用向导创建上诉描述的数据库。
1.建立数据库2.修改数据库名,数据库逻辑名,初始大小,增长方式等(2)使用向导删除上面建立的数据库。
1.删除数据库:内容二:1.以下是创建数据库userdb1 的SQL 语句,Create database userdb1On((name='userdb4_data',/*数据文件的逻辑名称,注意不能与日志逻辑同名*/filename='d:\sql_data\userdb4.mdf' ,/*物理名称,注意路径必须存在*/size=5,/*数据初始长度为M*/maxsize=10,/*最大长度为M*/filegrowth=1)/*数据文件每次增长M*/log on(( name=userdb4_log,filename='d:\sql_data\userdb4.ldf ' ,size=2,maxsize=5,filegrowth=1)Goa.选“视图”-“模板资源管理器”-Database-create database,双击databaseb.编写上述代码:2.根据步骤1 的sql 语句,写出创建实验二中数据库EDUC 的sql 语句,并建立数据库EDUC.3.用SQL 语句删除步骤一建立的数据库userdb1。
实验1 数据库设计实验名称:数据库设计实验内容:以所在学校选课和课程管理为实际应用背景,设计一个教学管理数据库。
假设至少包含以下需求:学生信息管理;课程信息管理;教师信息管理;学生选修课程及成绩信息管理;教师负责课程和讲授课程信息管理。
实验目的:通过实践,掌握本章介绍的数据库设计方法。
学会使用PowerDesigner来完成数据库设计过程。
实验方法:(1)根据实验内容明确要完成的系统功能。
(2)运行PowerDesigner创建概念数据模型转换成逻辑数据模型,建立实体、属性和联系。
对关键字、空值、域完整性等做出必要的描述,根据实际情况确定联系的类型。
(3)将检查无误的概念数据类型转换成逻辑数据模型,并对生成的逻辑数据模型作必要的修改。
(4)选择一个实际的DBMS软件根据逻辑数据模型生成物理数据模型,并对生成的物理数据模型作必要的修改。
实验要求:使用PowerDesiger或其他建模工具完成本实验。
建立满足需求的概念数据模型,逻辑数据模型和物理数据模型。
提交实验报告(含完整的设计文档)。
实验过程、源程序、运行结果及简单分析:概念数据模型学生姓名学号班级性别学院<pi>Characters (10)Characters (20)Characters (20)Characters (4)Characters (10)<M>学号...<pi>教师教师编号姓名性别<pi>Characters (20)Characters (20)Characters (10)<M>教师编号...<pi>课程课程名称课程编号学时学分<pi>Characters (20)Characters (10)Characters (10)Characters (10)<M>课程编号...<pi>逻辑数据授课学生姓名学号班级性别学院<pi>Characters (10)Characters (20)Characters (20)Characters (4)Characters (10)<M>学号...<pi>教师教师编号姓名性别<pi>Characters (20)Characters (20)Characters (10)<M>教师编号...<pi>课程课程名称课程编号教师编号学时学分<pi><fi>Characters (20)Characters (10)Characters (20)Characters (10)Characters (10)<M>课程编号...<pi>选课课程编号姓名成绩<pi,fi2><pi,fi1>Characters (10)Characters (10)<Undefined><M><M>Identifier_1...<pi>授课教师编号课程编号<pi,fi2><pi,fi1>Characters (20)Characters (10)<M><M>Identifier_1...<pi>物理数据模型学生姓名学号班级性别学院...char(10)char(20)char(20)char(4)char(10)<pk>教师教师编号姓名性别char(20)char(20)char(10)<pk>课程课程名称课程编号教师编号学时学分...char(20)char(10)char(20)char(10)char(10)<pk><fk>选课课程编号姓名成绩char(10)char(10)character<pk,fk1><pk,fk2>授课教师编号课程编号char(20)char(10)<pk,fk1><pk,fk2>总结:经过对这个实验的制作,信息比较多,做表格有点复杂,涉及的框架知识多,对关键字、空值、域完整性做的描述基本熟练。
数据库中数据完整性与约束的设计与实现数据完整性是指数据库中的数据符合定义好的规则和约束,保证数据的正确性、有效性和一致性。
数据完整性和数据约束是数据库设计和实现过程中非常重要的部分,能够确保数据的质量和可靠性。
在本文中,我们将探讨数据库中数据完整性的设计与实现,并介绍数据库约束的各种类型和用法。
在数据库设计中,我们可以通过以下几种方式来保证数据的完整性:1. 实体完整性:实体完整性是指每张表中的每一行数据都必须唯一存在,不能出现重复数据。
为了保证实体完整性,我们可以在数据库设计中设置主键约束。
主键是对表中每一行数据进行唯一标识的一列或一组列。
通过将主键设置为唯一且非空,我们可以确保表中的每一行数据都是唯一的。
2. 参照完整性:参照完整性是指确保数据库中的外键与它所引用的主键保持一致性。
外键是一张表中对另一张表中主键的引用。
通过参照完整性约束,我们可以限制外键引用主键的行为,防止数据引用错误或引用不存在的数据。
参照完整性可以通过设置外键约束来实现。
3. 域完整性:域完整性是指对数据库中的列设置约束,保证数据按照预期的规则进行插入。
常见的域完整性约束包括:唯一约束、非空约束、默认值约束、检查约束等。
唯一约束要求列中的数据不能重复;非空约束要求列中的数据不能为NULL;默认值约束在未指定值的情况下给予一个默认值;检查约束要求满足指定的条件。
4. 用户定义完整性:用户定义完整性是指用户通过触发器或存储过程来实现的一些额外约束条件。
触发器是一种特殊的存储过程,当满足某些条件时会自动触发执行。
用户可以根据业务需求,在特定操作前后编写触发器,用来实现自定义的数据约束。
了解了如何设计和实现数据完整性,接下来我们将介绍数据库约束的各种类型和用法:1. 主键约束(Primary Key):主键约束是对表中的一个或多个列设置唯一非空的约束。
主键通过确保表中每一行数据的唯一性来标识数据记录。
在设计数据库表时,我们应该为每个表选择一个合适的主键,并在创建表时设置主键约束。
一、实训目的本次数据库系统实训旨在通过实际操作,使学生掌握数据库的基本概念、设计方法、实现技术以及数据库系统的维护与管理,提高学生的数据库应用能力。
通过本次实训,学生能够:1. 理解数据库的基本概念和原理;2. 掌握数据库设计的方法和步骤;3. 学会使用数据库管理系统(DBMS)进行数据库的创建、修改、查询和维护;4. 了解数据库安全性和完整性控制的基本方法;5. 培养学生实际应用数据库解决实际问题的能力。
二、实训内容1. 数据库基本概念和原理(1)数据库系统的组成:数据库、数据库管理系统、数据库管理员、用户。
(2)数据库的三个级别:物理级别、概念级别、逻辑级别。
(3)数据模型:层次模型、网状模型、关系模型。
(4)数据库设计方法:需求分析、概念设计、逻辑设计、物理设计。
2. 数据库设计工具(1)E-R图:实体-联系图,用于表示实体和实体之间的关系。
(2)ERwin:实体-联系图绘制工具。
(3)PowerDesigner:数据库设计工具,支持多种数据库系统。
3. 数据库管理系统(DBMS)(1)SQL语言:结构化查询语言,用于数据库的创建、修改、查询和维护。
(2)Oracle、MySQL、SQL Server等数据库管理系统。
4. 数据库实现技术(1)数据库的创建、修改、删除。
(2)数据的查询、更新、删除。
(3)数据库的备份与恢复。
5. 数据库安全性和完整性控制(1)用户权限管理:授予、回收、修改用户权限。
(2)完整性约束:主键约束、外键约束、唯一性约束、非空约束。
(3)事务管理:事务的概念、特性、事务控制语句。
三、实训过程1. 实训环境:Windows操作系统,Oracle 11g数据库管理系统。
2. 实训步骤:(1)创建数据库:使用SQL语句创建数据库。
(2)创建表:根据需求设计表结构,使用SQL语句创建表。
(3)插入数据:使用SQL语句向表中插入数据。
(4)查询数据:使用SQL语句查询表中的数据。
《数据库系统概论》实验报告
题目:实验一 数据库和表数据库
/表的基本操
作和表级约束约束条件
姓名 班级 学号 日期
2010.9.29
一. 实验内容和步骤结果
1.在Student 数据库中,利用图形用户界面,创建一个选修了数据库课程并且是1986年出生的学生的视图,视图中包括学号,性别,成绩这三个信息:
2.用两种不同的SQL 语句创建课本128页第11题中要求的视图(视图名:V_SPJ ) 方法一:
CREATE VIEW V_SPJ AS
SELECT SNO ,PNO ,QTY FROM SPJ WHERE JNO in( SELECT JNO FROM J 表
WHERE JNAME ='三建')
方法二:
CREATE VIEW V_SPJ
AS
SELECT SNO,PNO,QTY
FROM SPJ,J表
WHERE SPJ.JNO=J表.JNO AND
JNAME='三建'
3.用SQL语句完成课本128页第11题中对视图V_SPJ的查询(1)
SELECT PNO,QTY
FROM V_SPJ
(2)
SELECT PNO,QTY FROM V_SPJ
WHERE SNO='S1'
4.用T-SQL语句操作视图的数据。
(15分,每题5分)
(1) 给视图V_SPJ中增加一条数据(基本表中有插入的数据即可)。
INSERT
INTO V_SPJ
VALUES('S0','P0','100')
(2)修改视图V_SPJ中的任意一条数据的供应数量。
UPDATE V_SPJ
SET QTY=10
WHERE SNO='S1'AND
PNO='P1'
(3)删除视图V_SPJ中的任意一条数据。
DELETE
FROM V_SPJ
WHERE SNO='S1';
5.在图形用户界面中创建新登录名以及用户。
(20分,每题10分)
(1)对于数据库company创建P148页第 8题中所需要用到的各个用户以及相关的关的登录名。
(假定有数据库company,库中有两个表e(职工表)和d(部门
表))。
具体步骤:
在安全性目录下选择登录名,右键单击新建,输入登录名和登录密码,并在用户映射出选择company。
运行结果:
(2)用图形用户界面完成以下的权限勇赋予:
a)用户王明对两个表有Select和Insert的权力。
具体步骤:
右键单击王明,选择属性,选择安全对象,添加对象,特定对象。
复选框选择表,确定。
表对象选择:e和d。
在授予下的复选框选择Select和 Insert。
运行结果:
b)用户李勇对职工表具有Select权力,对工资字段具有更新权力:
具体步骤:
确定Select权利和上题一样。
而对工资字段具有更新权力,单击Update,点列权限,选择“工资”。
运行结果:
6.用T-SQL语句授权和收回权限并加以验证。
(50分,每题5分)
(1)P148页 8题。
(除过(a),(e))
(b) SQL源码:
GRANT INSERT,DELETE
ON e
TO李勇
GRANT INSERT,DELETE
ON d
TO李勇
运行结果:
(c)SQL源码:CREATE VIEW E_SELECT
AS SELECT*
FROM e
WHERE e.姓名=CURRENT_USER GO
GRANT SELECT
ON E_SELECT
TO PUBLIC
运行结果:
(d)SQL源码:GRANT SELECT,UPDATE(工资) ON e
TO刘星
运行结果:
(f) SQL源码:GRANT ALL PRIVILEGES
ON e
TO周平
WITH GRANT OPTION
GRANT ALL PRIVILEGES
ON d
TO周平
WITH GRANT OPTION
运行结果:
(g)SQL源码:
CREATE VIEW X_PAY
AS
SELECT e.部门号,MAX(工资)最大工资,MIN(工资)最小工资,AVG(工资)平均工资FROM e,d
WHERE e.部门号=d.部门号
GROUP BY e.部门号
GO
GRANT SELECT
ON X_PAY
TO杨兰;
运行结果:
(2)P148页 9题的c),d),f),g):
(c) SQL源码:
REVOKE SELECT
ON E_SELECT
FROM PUBLIC;
DROP VIEW E_SELECT;
运行结果:
(d)SQL源码:
REVOKE SELECT,UPDATE
ON e
FROM刘星
运行结果:
(f)SQL源码:REVOKE ALL PRIVILEGES ON e
FROM周平
REVOKE ALL PRIVILEGES ON d
FROM周平
运行结果:
(g)SQL源码:REVOKE SELECT
ON X_PAY
FROM杨兰;
DROP VIEW X_PAY;
运行结果:
二. 实验中出现的问题以及解决方案(对于未解决问题请将问题列出来)除了标题内容以外,
该部分内容中还可以写对于实验的一些感受,建议,意见等。
本次实验是对视图的操作和安全性控制问题,基本的一些题目在书上都有例题,没多大难度。
只有少部分结合了视图的构造,开始没想到这方面,最后终于在老师的帮助下明白了。
总的来说本次实验学到不少,但是还是对ALL的用法不太了解!
批阅者:
批阅日期:
实验成绩:
批注:。