数据库系统原理复习总结(1)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Student
Sno Sname Ssex 男 男 … … 女 Sage 20 19 … 19 Sdept CS CS … IS 99101 张三 99103 李四 98102 王五 …
外码,不是Student的 主码,但是 Department的主码。 Student中Sdept中的值 都取自Department表 中相应Sdept的值。 指定外码时,列名不 一定要求相同。
修改基本表
ALTER TABLE <表名> [ADD,<新列名><数据类型>[完整性约束]]… [DROP,<完整性约束名>] [MODIFY,<列名> <数据类型>]; 向Student表增加“入学时间”列,日期型。 ALTER TABLE Student ADD Scome DATE;
修改基本表示例
三类完整性约束
1. 2. 3.
实体完整性 参照完整性 用户定义的完整性
实体完整性规则:若属性A是基本关系 R的主属性,则A不能取空值。
参照完整性
外码(Foreign Key) 设F是基本关系R的一个或一组属性,但 不是关系R的码。如果F与基本关系S的 主码Ks相对应,则称F是基本关系R的外码,
并称基本关系R为参照关系(Referencing Relation),基本关系S为被参照关系 (Referenced Relation),或目标关系(Target Relation)。关系R和S不一定是不同的关系。
3.4 查询
SELECT [ALL|DISTINCT]<目标列表达式>[,<目 标列表达式>]… FROM <表名或视图名>[,<表名或视图名>]… [WHERE <条件表达式>] [GROUP BY <列名1>[HAVING <条件表达式>]] [ORDER BY <列名2>[ASC|DESC]];
零件
数据库系统的三级模式结构
应用A 应用B 应用C 应用D 应用E
外模式1
外模式2
外模式3 外模式/模式映像
模式 内模式/模式映像 内模式
数据库
模式:是数据库中全体数据的逻辑结构 和特征的描述,是所有用户的公共数据 视图。 外模式:是数据库用户能够看见和使用 的局部数据的逻辑结构和特征的描述, 与某一应用有关的数据的逻辑表示。 内模式:是数据物理结构和存储方式的 描述,是数据在数据库内部的表示方式。
用E-R图表示工厂物资管理的 概念模型
仓库:仓库号、面积、电话号码 零件:零件号、名称、规格、单价、 描述 供应商:供应商号、姓名、地址、电 话号码、帐号 项目:项目号、预算、开工日期 职工:职工号、姓名、年龄、职称
实体及其联系图
供应商
m
仓库
m
1
工作
n
职工
1 n
供应量
n
供应
p
仓库
n
库存量
领导
项目
数据定义
定义表,视图,索引
操作方式
操作对象
表 视图 索引
创建 CREATE TABLE CREATE VIEW CREATE INDEX
删除 DROP TABLE DROP VIEW DROP INDEX
修改 ALTER TABLE
定义基本表
CREATE TABLE <表名> (<列名><数据类型 >[列级完整性约束条件] [,<列名><数据类型>[列级完整性约束条件]]… [,<表级完整性约束条件>] );
关系代数
集合运算符 并(∪),差(-),交(∩),广义笛卡儿积(×) 专门的关系运算符 选择(),投影(),连接( ), 除(÷) 算术比较符 比较(> , ≥ , < , ≤ , = , ≠ ) 逻辑运算符 非( ),与(∧ ),或(∨ )
广义笛卡儿积操作示例
A B 1 2 r C D 10 10 20 10 s A B 1 1 1 1 2 2 2 2 C D 10 19 20 10 10 10 20 10 E a a b b a a b b E a a b b
模式/内模式映象 模式和内模式是一一对应的 当数据库的存储结构改变时,由数据库 管理员对模式/内模式映象做相应改变, 可是使模式保持不变,从而应用程序也 不用改变,保证了数据与程序的物理独 立性,简称数据的物理独立性
关系模型的三要素
关系数据结构:关系,2维表格 关系操作
1. 2.
查询操作:选择(Select)、投影(Project)、连接(Join)、 除(Divide)、并(Union)、交(Intersection)、差 (Difference)等查询(Query)操作 增加(Insert),删除(Delete),修改(Update)操作
例:查询全体学生的姓名、出生年份和所有系, 要求用小写字母表示所有系名 SELECT Sname,’Year of Birth:’, 2004-Sage,ISLOWER(Sdept) FROM Student;
消除取值重复行示例
例:查询选修了课程的学生学号 SELECT Sno FROM SC; 包的运算 SELECT DISTINCT Sno FROM SC; 集合运算 SELECT 语句缺省为ALL,会保留结果 表中取值重复的行
谓词BETWEEN…AND… NOT BETWEEN …AND… 例:查询年龄在20-23岁(包括20岁和23岁) 之间的学生的姓名、系别和年龄 SELECT Sname,Sdept,Sage FROM Student WHERE Sage BETWEEN 20 AND 23;
确定集合查询示例
谓词IN, NOT IN 例:查询信息系(IS)、数学系(MA)、计算 机科学系(CS)学生的姓名和系别
查询全部列示例:
例:查询全体学生的详细记录 SELECT * FROM Student; 等价于: SELECT Sno,Sname,Ssex,Sage,Sdept FROM Student;
查询经过计算的值示例
例:查全体学生的姓名及其出生年份 SELECT Sname,2004-Sage FROM Student;
Department
Ddept CS Dloc Dname 曹光标大楼 计算机科 学 竺可桢大楼 信息科学 华罗庚大楼 数学 … … …
主码
IS MA
参照完整性规则: 若属性(或属性组)F是基本关系R的外 码,它与基本关系S的主码Ks相对应,则 对于R中每个元组在F上的值必须为:
或者取空值 或者等于S中某个元组的主码值
涉及空值的查询示例
例:查询缺少成绩的学生的学号和相应的 课程号 SELECT Sno,Cno FROM SC WHERE Grade IS NULL; 例:查询所有有成绩的学生学号和课程号 SELECT Sno,Cno FROM SC WHERE Grade IS NOT NULL;
多重条件查询
E-R图向关系模式的转化
一个m:n联系可以转换为一个关系模式。 三个或三个以上实体间的一个多元联系 可以转换为一个关系模式。
具有相同码的关系模式可合并。
将实体及多对多的联系转化为单独的关 系模式。 将1对1,和1对多的联系和实体合并
课程
m
课程号
学号
成绩
选课
成绩
n
学生
SQL语言的动词
数据查询 SELECT
建表示例:学生表
CREATE TABLE Student (Sno CHAR(5) NOT NULL UNIQUE, Sname CHAR(20) UNIQUE, Ssex CHAR(1), Sage INT, Sdept CHAR(15) primary key (Sno));
建表示例(续)
例子:分行存款表(branch) ,包含三项,分行名称 (branch-name),分行所在城市,资产额度 (assets ) 为分行名称建立主码,资产不能为负 数。 create table branch (branch-name char(15), branch-city char(30) assets integer, primary key (branch-name), check (assets >= 0));
数据定义 CREATE,DROP,ALTER 数据操纵 INSERT,UPDATE,DELETE 数据控制 GRANT,REVOKE
SQL语言的特点
综合统一 高度非过程化 面向集合的操作方式 以同一种语法结构提供两种使用方式 (交互式,嵌入式) 语言简单,易学易用
SQL语言的基本概念
基本表:对应一个存储文件 视图:一个或几个基本表导出的表,不 独立存储在数据库中,虚表,视图上可 以再建立视图 索引:一个表可以带若干索引,放在存 储文件中
ቤተ መጻሕፍቲ ባይዱ
r x s:
五种基本关系代数运算是: 并 (∪ ) 差 (- ) 广义笛卡儿积(×) 选择() 投影() 例如:R ∩S=R-(R-S)
E-R图向关系模式的转化P224
一个实体型转化为一个独立的关系模式, 实体的码就是关系的码 一个1:1联系可以转换为一个独立的关系 模式,也可以与任意一端对应的关系模 式合并 一个1:n联系可以转换为一个独立的关系 模式,也可以与n端对应的关系模式合并
数据库系统原理 课程总结
这次期末考试共有三道答题,分别是 1.单项选择(共10题,20分) 2. 简答题(共8题,40分) 3. 设计题(共3题,40分)
DB,DBS,DBMS三者概念和关系
数据库(Database) 数据库管理系统(Database Managerment System) 数据库系统(Database System)
将年龄的数据类型改为半字长整数。 ALTER TABLE Student ALTER/MODIFY Sage SMALLINT;
删除学生姓名必须取唯一值的约束。 ALTER TABLE Student DROP UNIQUE(Sname);
删除基本表
DROP TABLE <表名> 删除Student表。 DROP TABLE Student;
应用程序1
应用程序2
数据库 DBMS
…
数据模型的组成要素
数据结构:是对系统静态特性的描述 数据操作:是对系统动态特性的描述
数据的约束条件:一组完整性规则的集 合,保证数据正确、有效、相容
E-R图
E-R图提供了表示实体型、属性和联系的 方法 E-R模型描述的是现实世界的概念模型。 1.实体型:用矩形表示 2.属性:用椭圆表示 3.联系:用菱形表示
比较大小查询示例
例:查询所有年龄在20岁以下的学生姓名 及其年龄 SELECT Sname,Sage FROM Student WHERE Sage < 20; 例:查询考试成绩有不合格的学生学号 SELECT DISTINCT Sno FROM SC WHERE Grade < 60;
确定范围查询示例
逻辑运算符AND、OR,注意优先级
例:查询信息系(IS)中年龄小于20岁的学生的学 号和年龄 SELECT Sno,Sage FROM Student WHERE Sdept = ‘IS’ AND Sage < 20; 谓词IN是多个OR运算符的缩写
数据库的二级映象功能
外模式/模式映象 模式和外模式是一对多的关系 当模式改变时,由数据库管理员对于各 个外模式/模式映象做出改变,可以使外 模式保持不变,由于应用程序是依据数 据的外模式编写的,所以应用程序无需 修改,保证了数据和程序的逻辑独立性, 简称数据的逻辑独立性
数据库的二级映象功能(续)
单表查询--选择属性列
指定列; 全部列; 运算表达式:可以是基于元组的任何算 术表达式(包括常量,内部函数等) (内部函数属于现代关系数据库系统的 一种扩展能力)
查询指定列示例
例:查询所有被选修的课程号码。 SELECT Cno FROM SC; 例:查询全体学生的学号、姓名、所在系 SELECT Sname,Sno,Sdept FROM Student;
SELECT Sname,Ssex FROM Student WHERE Sdept IN (‘IS’,’MA’,’CS’);
字符匹配查询示例
谓词LIKE
[NOT] LIKE ‘<匹配串>’ [ESCAPE ‘<换码 字符>’] 匹配串:完整字符串 通配符‘%’,‘_’
字符匹配查询示例(续一)
例:查询所有姓刘的学生的姓名、学号和性 别 SELECT Sname,Sno,Ssex FROM Student WHERE Sname LIKE ‘刘%’;