如何增加网站的外链,做公司网站的费用,上海工程建设咨询有限公司,网站设计内容1 关系模型的核心结构
①单一的数据结构#xff08;关系#xff09; 现实世界的实体以及实体间的各种联系均用关系来表示
②逻辑结构#xff08;二维表#xff09; 从用户角度#xff0c;关系模型中数据的逻辑结构是一张二维表#xff0c;行代表元组#xff08;记录关系 现实世界的实体以及实体间的各种联系均用关系来表示
②逻辑结构二维表 从用户角度关系模型中数据的逻辑结构是一张二维表行代表元组记录列代表属性字段
2 相关定义
1域Domain一组具有相同数据类型的值的集合。
例如整数、实数、介于某个取值范围的整数、指定长度的字符串集合、{‘男’‘女’}等。 示例 性别域{男, 女} 年龄域1~120的整数 课程域{数学, 英语, 物理}。
2笛卡尔积Cartesian Product
给定一组域D1D2…Dn这些域中可以有相同的。
D1D2…Dn的笛卡尔积为 注意
所有域的所有取值的一个组合
不能重复
笛卡尔积中每一个元素d1d2…dn叫作一个n元组或简称元组。
笛卡尔积元素d1d2…dn中的每一个值di叫作一个分量。
基数若Dii12…n为有限集其基数为mii1, …n则D1×D2×…×Dn的基数M为 示例 域 1{,}2{1,2}} 笛卡尔积{(,1),(,2),(,1),(,2)} 基数2×24 关键点 元组Tuple笛卡尔积中的每个元素如 (,1)。 分量Component元组中的每个值 如 或 1。 基数Cardinality若域 Di 的基数为 mi则笛卡尔积的基数为 1×2×…×
3关系
D1×D2×…×Dn的子集叫作在域D1,D2,…,Dn上的关系表示为 RD1D2…Dn R关系名 n关系的目或度Degree
关系也是一个二维表表的每行对应一个元组表的每列对应一个域。 属性 关系中每一列必须起一个名字称为属性。比如上表中的“导师”、“专业”、“研究生”就是属性
码 候选码 若关系中的某一属性组的值能唯一地标识一个元组且没有多余属性则称该属性组为候选码。 主码Primary key 若一个关系有多个候选码则选定其中一个为主码。 全码All-key 所有属性组共同组成的候选码称为全码All-key。
看到这里是不是很迷糊没关系我们下面通过一个具体的例子来说明这几个码的概念
现有如下两个表
学生信息表
学号姓名性别年龄1001张三男221002李四女211003王五男20
选课表
学号课程号成绩1001H001981002H001881001H00278
1. 属性
在 “学生信息表” 中“学号”“姓名”“性别”“年龄” 是该表的属性它们分别为每一列命名用于区分不同类型的数据。同样在 “选课表” 中“学号”“课程号”“成绩” 是属性。
2. 候选码
在 “学生信息表” 中“学号” 可以唯一地标识一个元组每一个学号对应唯一的学生且没有多余属性所以 “学号” 是候选码。“姓名” 不是候选码因为可能存在重名的学生不能唯一标识元组。在 “选课表” 中“学号” 和 “课程号” 的组合能唯一地标识一个元组一个学生选一门课的记录是唯一的且没有多余属性所以 “学号” 和 “课程号” 这个属性组是候选码。单独的 “学号” 或 “课程号” 都不能唯一标识元组因为一个学生可以选多门课一门课可以被多个学生选。
3. 主码
在 “学生信息表” 中由于只有 “学号” 这一个候选码所以 “学号” 就是主码。在 “选课表” 中因为 “学号” 和 “课程号” 的组合是候选码我们可以选定这个组合作为主码。如果还有其他候选码比如在特定情况下有另外一个能唯一标识元组的属性组就可以从这些候选码中选择一个作为主码。
4. 全码 假设存在一个关系表 “学生 - 课程 - 教师 - 教室”记录学生选课后上课对应的教师和教室信息。在这个表中可能需要 “学生”“课程”“教师”“教室” 所有属性组共同才能唯一地标识一个元组因为可能存在不同学生选同一门课不同教师教同一门课同一门课在不同教室上的情况此时 “学生”“课程”“教师”“教室” 就共同构成了全码。 下面再来介绍几个概念数据库这块的概念非常多不过不用太担心我尽量用浅显的语言的给大家讲明白、讲到位。
主属性与非主属性
候选码的诸属性称为主属性。例如在 “学生信息表” 中“学号” 是候选码那么 “学号” 就是主属性它对于确定表中的唯一元组至关重要。
不包含在任何侯选码中的属性称为非主属性或非码属性。以 “学生信息表” 为例“姓名”“性别”“年龄” 都不能单独或组合起来唯一标识一个元组它们也不是候选码的一部分所以属于非主属性 三类关系
基本关系基本表或基表实际存在的表是实际存储数据的逻辑表示。比如学校用来存储学生基本信息的 “学生信息表”存储课程信息的 “课程表” 等这些表中的数据会被实际存储在数据库中。
查询表查询结果对应的表。例如在 “学生信息表” 中查询年龄大于 20 岁的学生信息查询结果所形成的表就是查询表它是基于查询操作临时生成的。
视图表由基本表或其他视图表导出的表是虚表。 比如可以从 “学生信息表” 和 “选课表” 导出一个 “学生选课成绩视图表”该视图表中可能包含学生姓名、所选课程名称、成绩等信息它本身并不实际存储数据而是在使用时根据定义从相关的基本表中获取数据。 关系与表的对应
数学术语数据库术语示例域数据类型INT, VARCHAR(10)笛卡尔积所有可能组合全排列无实际意义关系表Table学生表、课程表元组行Row一条学生记录分量列值Cell学生姓名为“张三”
3 关系模式
关系模式是对关系的描述。包括
①元组集合的结构 属性构成; 属性来自的域 ; 属性与域之间的映象关系。
②元组语义以及完整性约束条件。常见的完整性约束有实体完整性如主码不能取空值确保每个元组能被唯一标识、参照完整性用于维护表与表之间的关联关系比如外键的值必须在相关表的主码取值范围内和用户定义的完整性根据具体业务需求定义的约束条件如学生的年龄必须大于 0 等 。
③属性间的数据依赖关系集合。例如函数依赖若在 “学生 - 课程 - 成绩” 关系中知道了 “学号” 和 “课程号”就能唯一确定 “成绩”那么 “成绩” 函数依赖于 “学号” 和 “课程号”。 关系模式可以形式化地表示为 RUDDOMF R 关系名 U 组成该关系的属性名集合 D 属性组U中属性所来自的域 DOM 属性向域的映象集合 F 属性间的数据依赖关系集合
关系模式的简化形式 R (U) 或 R (A1A2…An) R (UF)
R: 关系名
A1A2…An : 属性名
假设我们要设计一个用于存储员工信息的数据库关系。 关系名我们将关系命名为 Employee这里 Employee 就是R。 属性名员工信息可能包括员工编号EmployeeID、员工姓名EmployeeName、年龄Age、部门Department。那么用 R (A1A2…An)的形式表示这个关系模式就是 Employee (EmployeeID, EmployeeName, Age, Department) 4 关系模式与关系的区别
关系模式对关系的描述静态的、稳定的。
关系关系模式在某一时刻的状态或内容是动态的、随时间不断变化的。
关系模式和关系往往统称为关系通过上下文加以区别