基本概念
数据库(DB):长期存储在计算机内的、有组织的、可共享的数据集合。
数据库管理系统(DBMS):它是数据库的机构,是一个系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等。
数据库管理系统是数据库系统的核心。
数据库系统(DBS)数据库、数据库管理系统、数据库管理员、硬件平台、软件平台。
数据库管理员(DBA):数据库管理员的主要任务:数据库设计、数据库维护、改善系统性能。
DBS包含DB、DBMS,DBMS用来管理DB
数据库管理系统提供了以下数据语言:
数据定义语言(DDL):负责数据的模式定义和数据的物理存取构建。
数据操纵语言(DML):负责数据的操纵,包括查询、增、删、改等操作。
数据控制语言(DCL):负责数据完整性、完全性的定义与检查、并发控制、故障恢复等功能。
数据库技术的发展
数据管理技术的3个阶段:
人工管理阶段、文件管理阶段、数据库系统管理阶段
数据库技术的根本目的:解决共享问题。
数据库系统体系结构(三级模式两级映像)
内模式发生变化时,由模式/内模式映像维持模式不变;模式发生变化时,由外模式/模式映像维持外模式不变(内变外不变)
用户所能见到的模式是外模式。
在数据库的三级模式中,外模式(用户模式或子模式)可以有任意多个。
将数据库的结构划分成多个层次,是为了提高数据库的逻辑独立性和物理独立性
数据模型
数据模型的基本概念
数据模型:对数据特征的抽象。数据模型就是对现实世界的模拟、描述和表示。
数据模型的三要素:数据结构、数据操作、数据约束。
数据模型的类型:
概念数据模型(概念模型):E-R模型(实体联系模型)
逻辑数据模型(数据模型):层次模型、网状模型、关系模型
层次模型:用树形结构表示实体及其之间联系的模型。
网状模型:用网状结构表示实体及其之间联系的檬型。
物理数据模型(物理模型)
E-R模型
实体间联系的类型
1对1(1:1):一个学号对应一个学生,一个学生对应一个学号(学号:学生)
1对多(1:m):一个老师可以上好多班级的课,这些班级的这个课只能由这一个老师上(老师:不同班级同一门课)
多对多(m:m):一台电脑可以由多个学生用,多个学生可以用同一个电脑(学生:电脑)
关系模型
关系模式采用二维表来表示关系,简称表,一个二维表就是一个关系。
属性:二维表中的一列称为属性。
元组:二维表中的一行称为元组。
键/码:二维表中能唯一表示元组的最小属性集。
例如上表学号、姓名、年龄、专业都可以成为码。
主键/主码:若一个二维表中有多个码。则选定其中一个作为主键供用户使用。
在学号、姓名、年龄、专业中选一个就是主码。
这个表中你发现学号、课程号、成绩,都不能单独作为码,所以,就可以将多个属性结合起来作为码。例如学号和课程号确定了就唯一确定了成绩。
外键/外码:表M中的某属性集是表N的候选键或主键,则称该属性集为M的外键。
表一的外码是专业,专业来自表三
表二的外码是学号和课程号,前者来自表一后者来自表二。
表三的外码没有外码。
关系代数
关系数据论(范式)
部分函数依赖:我们那表一举例学号可以唯一确定姓名,学号和年龄也可以确定姓名,但是,年龄这个属性又是可要可不要的,像这样姓名这个属性的确定可以只由学号和年龄中的学号确定的现象叫做部分函数依赖,即只需要依赖学号和年龄中的部分就能确定姓名这一属性。
单选 定义学生选修课程的关系模式如 下:SC(S#,Sn,C#,Cn,G,Cr)(其属性分别为学号、姓名、 课程号、课程名、成绩、学分)则对主属性部分依赖的是 ()
A.(S#,C#)-→G
B.S#-→Sn
C.(S#,C#)-→S#
D.(S#,C#)-→C#
关系SC中的主键是(S#,C#),但S# (学号)单独就可以诀定Sn (姓名),存在着对主属性的部分依赖。本题选B。
传递函数依赖:通过学号可以知道姓名,又通过姓名可以知道专业,那么通过学号也可以确定专业的这种情况叫做传递函数依赖。
学生和课程的关系模式定义为S (S#, Sn, Sd,Dc, Sa)(其属性分别为学号、姓名、所在系、所在系的系主任、年龄);C(C#,Cn, P#)(其属性分别为课程号、课程名、先选课)﹔SC (S#,C#,G)(其属性分别学号、课程号和成绩)。关系中包含对主属性传递依赖的是________。
A. S#→Sd,Sd→Dc
B. S#→sd
C. S#→Sd,(S#,C#)→G
D. C#→P#,(S#,C#)→G