1、1.1任务描述:任务描述:本章完成项目的第本章完成项目的第1个任务:设计大学生选个任务:设计大学生选课管理数据库,分析该数据库应含有几个表,这课管理数据库,分析该数据库应含有几个表,这几个表之间有什么关系,画出这几个表之间的关几个表之间有什么关系,画出这几个表之间的关系模型,并分别设计出这几个表,注意它们的主系模型,并分别设计出这几个表,注意它们的主键或外键以及它们之间的联系。键或外键以及它们之间的联系。超市购物超市购物使用信用卡购物使用信用卡购物在旅行社预定假期在旅行社预定假期使用图书馆使用图书馆出租录像出租录像使用使用Internet1.2数据库举例数据库举例1.3 数据库的基本概念数据库
2、的基本概念1、信息与数据、信息与数据 信息:信息是人们进行各种活动所需要的各种知识,是现实世界各种状态的反映。数据:是描述信息的符号,符号的形式多种多样,如数值、文本、图形、声音等类型的数据,用来反映不同类型的信息。2数据处理数据处理 数据处理是指对各种形式的数据进行收集、存储、加工和传播的一系列活动的总和,其目的是从大量的、原始的数据中抽取、推导出对人们有价值的信息以作为行动和决策的依据。1.3.1信息、数据与数据处理信息、数据与数据处理1.3.2数据库的基本概念数据库的基本概念 数据库是自描述的:它除了包含用户的源数据外,还包含关于它本身结构的描述。这个描述称为数据字典(或数据目录,或元数
3、据)数据库是集成记录的集合。用户数据文件是由这些记录组合而成的。数据库不仅仅包含用户数据文件,它还包含其他内容。数据库包含4个要素:用户数据、元数据、索引和应用元数据。1.3.3数据库系统数据库系统 数据库系统数据库系统:一个数据库系统是一个实际可运行的、按照数据库方式存储、维护和为应用系统提供数据或信息支持的系统。它是存储介质、处理对象和管理系统的集合体。数据库系统的组成数据库系统的组成:(1)数据库(DB)是存放数据的仓库,人们收集并抽取出一个应用所需要的大量数据之后,应将其保存起来以便进一步加工处理,进一步抽取有用的信息。(2)计算机硬件数据库系统的硬件包括中央处理器、内存、外存、输入/
4、输出设备、数据通道等硬件设备。(3)计算机软件:数据库系统的软件包括数据库管理系统、操作系统、各种宿主语言和应用开发支撑软件等程序。(4)数据库用户,它包括:数据库管理员(DBA)、专业用户、应用程序员、最终用户。数据库管理系统数据库管理系统:数据库管理系统(DBMS)是指数据库系统中对数据进行管理的软件系统,它是数据库系统的核心组成部分,数据库系统的一切操作,包括查询、更新以及各种控制都是通过DBMS进行的。它的基本功能包括:数据库定义功能、数据库操纵功能、数据控制功能、数据的服务功能。1.3.3数据库系统数据库系统数据库管理员:数据库管理员:DBA的主要职责包括如下6个方面:(1)决定数据
5、库中存放哪些信息(2)决定数据库的存储结构和存取策略(3)定义数据库的安全性要求和完整性约束条件(4)监督和控制数据库的使用和运行(5)数据库系统的性能改进(6)数据库系统和重组1.3.3数据库系统数据库系统1.4 关系数据库关系数据库 1.4.11.4.1关系模型的基本概念 关系模型由三部分组成:数据结构、关系操作、关系的完整性。关系数据库与层次数据库、网状数据库相比,具有简单灵活的数据模型、较高的数据独立性,能提供有着良好性能的语言接口,并且有着比较坚实的理论基础等优点,它是目前最流行的数据库系统。1.4.2关系模型的基本术语关系模型的基本术语 1关系关系 一个关系对应一个二维表,二维表名
6、就是关系名 2属性及值域属性及值域 二维表中的列(字段)称为关系的属性。关系的属性包括属性名和属性值两部分,其列名即为属性名,列值即为属性值。属性值的取值范围称为值域,每一个属性对应一个值域,不同属性的值域可以相同 1.4.2关系模型的基本术语关系模型的基本术语 3关系模式关系模式 二维表中的行定义(表头)、记录的类型,即对关系的描述为关系模式、关系模式的一般形式为:关系名(属性1,属性2,属性n)4元组元组 二维表中的一行,即每一条记录的值称为关系的一个元组。其中,每一个属性的值称为元组的分量。关系由关系模式和元组的集合组成。5键键 键由一个或几个属性组成,在实际使用中,有下列几种键。(1)
7、超键:在关系中能唯一标识元组的属性或属性的组合称为该关系的超键。(2)候选键:不含有多余属性的超键称为候选键。即在候选键中,若要再删除属性,就不是键了。(3)主键:用户选用元组标识的一个候选键称为主键。6主属性与非主属性主属性与非主属性 关系中包含在任何一个候选键中的属性称为主属性,不包含在任何一个候选键中的属性为非主属性。7外键、参照关系与依赖关系外键、参照关系与依赖关系 当关系中的某个属性或属性的组合虽然不是该关系的主键或只是主键的一部分,但却是另一个关系的主键,而且其值来源于另一关系的主键值,称该属性或属性的组合为这个关系的外键。以外键作为主键的关系称为参照关系或主关系,外键所在的关系称
8、为依赖关系或从关系。在关系模型中通过外键实现两个关系之间的关联。1.4.2关系模型的基本术语关系模型的基本术语1.4.3关系的定义和性质关系的定义和性质 由于关系是若干元组的集合,可以用集合的观点定义关系。关系是一个元数为K(K1)的元组的集合。即把关系看成是一个集合,集合中的元素是元组,每个元组属性个数应相同。在关系模型中,对关系作了下列规范性限制。1关系中的每一个属性值是不可分解的。2每一个关系模式中属性的数据模型以及属性的个数是固定的,并且每个属性必须命名,在同一个关系模式中,属性名必须是互不相同的。3每一个关系仅有一种关系模式。4在关系中元组的顺序是无关紧要的,即没有行序。5在关系中属
9、性的顺序可任意交换,交换是应连同属性名一起交换,即没有列序。6在同一个关系中不允许出现完全相同的元组。1.4.4关系模型的三要素关系模型的三要素 关系模型由三部分组成:数据结构、关系操作及关系的完整性规则 1数据结构数据结构 关系模型中所选用的数据结构为集合论中的关系,即用关系来描述实体集,同时也用关系来描述实体之间的关系。2关系操作关系操作 关系操作能力的表达有两种不同的方法。(1)代数方法,也称为关系代数。它是以集合的操作为基础,应用对关系的专门运算来表达查询的要求。(2)逻辑方法,也称为关系演算。它是以谓词演算为基础,通过元组必须满足的谓词公式来表达查询要求。3关系模型的完整性规则关系模
10、型的完整性规则 数据完整性由完整性规则来定义,关系模型的完整性规则是对关系的某种约束条件。(1)实体完整性 限定关系中的主键值不能为空。关系的这种约束,称为实体完整性 (2)参照完整性 参照完整性是用于约束外键的,即,若F是关系R中对应关系S的外键,则对于R中每个元组在F上的值必须为以下值:取空值(F的每个属性值均为空)。等于S中某个元组的主键值。(3)用户定义的完整性 关系数据库管理系统还允许用户定义某一具体数据库所涉及的数据必须满足的约束条件。这种约束条件是对数据在语义范畴的描述,由具体应用环境来决定,这就是用户定义的完整性。1.4.4关系模型的三要素关系模型的三要素 只有采用较好的数据库
11、设计,才能比较迅速、高效地创建一个设计完善的数据库,为访问所需的信息提供方便。在设计时打好坚实的基础,设计出结构合理的数据库,会节省日后管理数据库所需要的时间。本节将在避免谈及关系数据库规范化所波及的理论的前提下,通俗地介绍在SQL Server中设计关系数据库的方法。1.5关系数据库设计关系数据库设计1.5.1数据库设计步骤数据库设计步骤1设计原则设计原则 为了合理地组织数据,应遵从以下基本设计原则:(1)关系数据库的设计应遵从概念单一化“一事一地”的原则(2)避免在表之间出现重复字段(3)表中的字段必须是原始数据和基本数据元素(4)用外部关键字保证有关联的表之间的联系1.5.1数据库设计步
12、骤数据库设计步骤2 设计的步骤设计的步骤(1)需求分析:确定建立数据库的目的这有助于确定数据库保存哪些信息。(2)确定需求的表:着手把需求信息划分成各个独立的实体,例如客户、职工、商品、定单、供应商等。将每个实体设计为数据库中的一个表。(3)确定所需字段:确定在每个表中要保存哪些字段。通过对这些字段的显示或计算应能够得到所需求的信息。(4)确定联系:对每个表进行分析,确定一个表中的数据和其他表中的数 据有何联系。必要时,可在表中加入字段或创建新表来明确地反映联系。(5)设计求精:对设计进一步分析,查找其中的错误。创建表,在表中加入几个示例数据记录,看看能否从表中得到想要的结果。必要时应调整设计
13、。1.5.2 数据库设计过程数据库设计过程 1 1需求分析需求分析 用户需求主要包括三个方面:(1)信息需求:用户要从数据库中获得的信息内容。信息需求定义了数据库应用系统应该提供的所有信息,应注意描述清楚系统中数据的数据类型。(2)处理需求:需要对数据完成什么处理功能及处理的方式。处理需求定义了系统的数据处理的操作,应注意操作执行的场合、频率、操作对数据的影响等。(3)安全性和完整性要求:在定义信息需求和处理需求的同时必须相应确定安全性和完整性约束。2确定需要的表确定需要的表 定义数据库中的表是数据库设计过程中技巧性最强的一步。3 3确定所需字段确定所需字段 确定字段时需要注意的问题如下:(1
14、)每个字段直接和表的实体相关(2)以最小的逻辑单位存储信息(3)表中的字段必须是原始数据(4)确定主关键字字段4 4确定联系确定联系 设计数据库的目的实质上是设计出满足实际应用需求的实际关系模型。确定联系的目的是使表的结构合理,不仅存储了所需要的实体信息,并且反映出实体之间客观存在的关联。5 5设计求精设计求精 数据库设计在每一个具体阶段的后期都要经过用户确认。如果不能满足应用需求,则要返回到前面一个或前面几个阶段进行修改和调整。整个设计过程实际上是一个不断反复修改、调整的迭代过程。1.5.2 数据库设计过程数据库设计过程1.6 任务实现任务实现设计大学生选课管理数据库,分析如下:1在大学生选
15、课管理中,显然得有“学生”、“教师”和“课程”这三个对象实体,也就说,得有学生信息表、教师信息表和课程信息表。2学生信息表至少得含有学号、姓名、性别、所在系、班级和电话这几项信息;教师信息表至少得含有教师编号、姓名、性别、所在系、学历、专业、职称和电话这几项信息;课程信息表至少得含有课程代码、课程名称、学时数、学分和课程收费这几项信息。3显然学生信息表、教师信息表和课程信息表之间有如下联系:(1)教师表与课程表之间存在“多对多”的联系,一个教师能够同时讲授多门课程,而同一门课程也可由多个教师来讲授。这样由前面叙述可知,需要增加一个能够联系教师表与课程表的“纽带表”,即“教师教课信息表”,该表至
16、少含有教师号、课程代码和讲课酬金这几项信息,指哪个教师所能够讲授的哪一门课程。(2)学生表与教师教课表之间存在“多对多”的联系,一个学生能够同时选修多门(有教师能讲的)课程,同一门(有教师能讲的)课程也可有多个学生同时选修。这样还需要增加一个能够联系学生表与教师教课表的“纽带表”,即“学生选课信息表”,该表至少含有学生号、课程代码、教师号和课程成绩这几项信息。指哪个学生选修的哪一门课程和所选讲授这门课程的哪一位教师。1.6 任务实现任务实现 4经上述分析可知,大学生选课管理数据库应含有5个表:学生信息表,教师信息表,课程信息表,教师教课信息表(指教师能够讲授的课程统计表),学生选课信息表(指学生所选修的课程统计表),它们之间的关系模型如图1-3所示,其中单箭头连线代表一对多联系。涉及的五个表见下一页:涉及的五个表见下一页:1.6 任务实现任务实现1.6 任务实现任务实现