第5章_数据库体系结构
《数据库技术与应用》第5章 习题答案

第5章数据库完整性与安全性1. 什么是数据库的完整性?什么是数据库的安全性?两者之间有什么区别和联系?解:数据库的完整性是指数据库中数据的正确性、有效性和相容性,其目的是防止不符合语义、不正确的数据进入数据库,从而来保证数据库系统能够真实的反映客观现实世界。
数据库安全性是指保护数据库,防止因用户非法使用数据库造成数据泄露、更改或破坏。
数据的完整性和安全性是两个不同的概念,但是有一定的联系:前者是为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出,即所谓垃圾进垃圾出所造成的无效操作和错误结果。
后者是保护数据库防止恶意的破坏和非法的存取。
也就是说,安全性措施的防范对象是非法用户和非法操作,完整性措施的防范对象是不合语义的数据.2。
什么是数据库的完整性约束条件?完整性约束条件可以分为哪几类?解:完整性约束条件是指数据库中的数据应该满足的语义约束条件。
一般可以分为六类:静态列级约束、静态元组约束、静态关系约束、动态列级约束、动态元组约束、动态关系约束.静态列级约束是对一个列的取值域的说明,包括以下几个方面:①数据类型的约束,包括数据的类型、长度、单位、精度等;②对数据格式的约束;③对取值范围或取值集合的约束;④对空值的约束;⑤其他约束.静态元组约束就是规定组成一个元组的各个列之间的约束关系,静态元组约束只局限在单个元组上。
静态关系约束是在一个关系的各个元组之间或者若干关系之间常常存在各种联系或约束。
常见的静态关系约束有:①实体完整性约束;②参照完整性约束;③函数依赖约束.动态列级约束是修改列定义或列值时应满足的约束条件,包括下面两方面:①修改列定义时的约束;②修改列值时的约束。
动态元组约束是指修改某个元组的值时需要参照其旧值,并且新旧值之间需要满足某种约束条件.动态关系约束是加在关系变化前后状态上的限制条件,例如事务一致性、原子性等约束条件。
3. 试述DBMS如何实现完整性控制.解:为了维护数据库的完整性,DBMS提供了以下三种机制:①完整性约束条件定义完整性约束条件也称为完整性规则,是数据库中的数据必须满足的语义约束条件.SQL标准使用了一系列概念来描述完整性,包括关系模型的实体完整性、参照完整性和用户定义完整性。
第5章 表数据操作-MySQL数据库技术与应用-赵明渊-清华大学出版社

MySQL数据库技术与应用
5
•
5.1 插入数据
如果插入值的顺序和表定义的列的顺序不同,在插入全部列时, 则不能省略列名表,参见下例。
【例5.2】向student1表插入一条记录,学号为“196002”,姓名为 “李茜”,专业为“通信”,总学分52,性别为“女”,出生日期 为“1998-07-25”。
MySQL数据库技术与应用
2
•
5.1 插入数据
语法格式:
INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY][IGNORE] [INTO] table_name [(col_name ,...)] VALUES({EXPR| DEFAULT},...),(...),... |
mysql> INSERT INTO student1 (sno, sname, sbirthday, tc) -> VALUES('196004','周俊文', '1998-03-10', 50);
执行结果:
Query OK, 1 row affected (0.06 sec)
MySQL数据库技术与应用
+----------+---------+------+--------------+------------+----+
| 196001 | 董明霞 | 女 | 1999-05-02 | 通信 | 196002 | 李茜 | 女 | 1998-07-25 | 通信
数据库系统概论第五版课后习题答案

第1章绪论1 .试述数据、数据库、数据库系统、数据库管理系统的概念。
答:( l )数据( Data ) :描述事物的符号记录称为数据。
数据的种类有数字、文字、图形、图像、声音、正文等。
数据与其语义就是不可分的。
解析在现代计算机系统中数据的概念就是广义的。
早期的计算机系统主要用于科学计算,处理的数据就是整数、实数、浮点数等传统数学中的数据。
现代计算机能存储与处理的对象十分广泛,表示这些对象的数据也越来越复杂。
数据与其语义就是不可分的。
500这个数字可以表示一件物品的价格就是 500元,也可以表示一个学术会议参加的人数有 500人,还可以表示一袋奶粉重 500克。
( 2 )数据库( DataBase ,简称 DB ) :数据库就是长期储存在计算机内的、有组织的、可共享的数据集合。
数据库中的数据按一定的数据模型组织、描述与储存,具有较小的冗余度、较高的数据独立性与易扩展性,并可为各种用户共享。
( 3 )数据库系统( DataBas。
Sytem ,简称 DBS ) :数据库系统就是指在计算机系统中引入数据库后的系统构成,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员构成。
解析数据库系统与数据库就是两个概念。
数据库系统就是一个人一机系统,数据库就是数据库系统的一个组成部分。
但就是在日常工作中人们常常把数据库系统简称为数据库。
希望读者能够从人们讲话或文章的上下文中区分“数据库系统”与“数据库”,不要引起混淆。
( 4 )数据库管理系统( DataBase Management sytem ,简称 DBMs ) :数据库管理系统就是位于用户与操作系统之间的一层数据管理软件,用于科学地组织与存储数据、高效地获取与维护数据。
DBMS的主要功能包括数据定义功能、数据操纵功能、数据库的运行管理功能、数据库的建立与维护功能。
解析 DBMS就是一个大型的复杂的软件系统,就是计算机中的基础软件。
目前,专门研制 DBMS的厂商及其研制的 DBMS产品很多。
数据库系统概论(第五版)王珊第五章课后习题答案

数据库系统概论(第五版)王珊第五章课后习题答案1什么是数据库的完整性?答:数据库的完整性是指数据的正确性和相容性。
2 .数据库的完整性概念与数据库的安全性概念有什么区别和联系?答:数据的完整性和安全性是两个不同的概念,但是有⼀定的联系。
前者是为了防⽌数据库中存在不符合语义的数据,防⽌错误信息的输⼊和输出,即所谓垃圾进垃圾出( Garba : e In Garba : e out )所造成的⽆效操作和错误结果。
后者是保护数据库防⽌恶意的破坏和⾮法的存取。
也就是说,安全性措施的防范对象是⾮法⽤户和⾮法操作,完整性措施的防范对象是不合语义的数据。
3 .什么是数据库的完整性约束条件?可分为哪⼏类?答完整性约束条件是指数据库中的数据应该满⾜的语义约束条件。
⼀般可以分为六类:静态列级约束、静态元组约束、静态关系约束、动态列级约束、动态元组约束、动态关系约束。
静态列级约束是对⼀个列的取值域的说明,包括以下⼏个⽅⾯: ( l )对数据类型的约束,包括数据的类型、长度、单位、精度等; ( 2 )对数据格式的约束; ( 3 )对取值范围或取值集合的约束; ( 4 )对空值的约束; ( 5 )其他约束。
静态元组约束就是规定组成⼀个元组的各个列之间的约束关系,静态元组约束只局限在单个元组上。
静态关系约束是在⼀个关系的各个元组之间或者若⼲关系之间常常存在各种联系或约束。
常见的静态关系约束有: ( l )实体完整性约束; ( 2 )参照完整性约束; ( 3 )函数依赖约束。
动态列级约束是修改列定义或列值时应满⾜的约束条件,包括下⾯两⽅⾯: ( l )修改列定义时的约束; ( 2 )修改列值时的约束。
动态元组约束是指修改某个元组的值时需要参照其旧值,并且新旧值之间需要满⾜某种约束条件。
动态关系约束是加在关系变化前后状态上的限制条件,例如事务⼀致性、原⼦性等约束条件。
4 . DBMS 的完整性控制机制应具有哪些功能?答:DBMS 的完整性控制机制应具有三个⽅⾯的功能: ( l )定义功能,即提供定义完整性约束条件的机制; ( 2 )检查功能,即检查⽤户发出的操作请求是否违背了完整性约束条件;( 3 )违约反应:如果发现⽤户的操作请求使数据违背了完整性约束条件,则采取⼀定的动作来保证数据的完整性。
数据库概论

第二章数据库概论§2.1 数据库的发展数据库处理在信息系统的研究中一直是非常重要的主题,然而,近年来,随着World Wide Web(WWW)的猛增及Internet技术的迅速发展,使得数据库技术之时成为最热门技术之一。
数据库技术能使Internet应用超越具有早期应用特点的简单的发布。
同时,Internet技术提供了一种向用户发布数据库内容的标准化的访问方法。
这些技术没有脱离经典数据库技术的要求。
它们只是加重了数据库技术的重要性。
数据库的设计和开发及包括艺术有包括工程。
理解用户的需求,然后,把它们转变为有效的数据库设计是一个艺术过程。
把设计转变为实际的数据库,并且这些数据库带有功能完备、高效能的应用,是一个工程过程。
数据库的目的是帮助人们跟踪事务。
经典的数据库应用涉及诸如订单、顾客、工作、员工、学生、电话之类的项,或其它数据量较大、需要密起关注的事务。
最近,由于数据库的普及,数据库技术已经被应用到了新的领域,诸如用于Internet的数据库或用于公司内联网的数据库。
数据库也被越来越多地应用于生成和维护多媒体应用程序上。
计算机的数据处理应用,首先要把大量的信息以数据形式存放在存储器中。
存储器的容量、存储速率直接影响到数据管理技术的发展。
从1956年生产出第一台计算机到现在,存储器的发展,为数据库技术提供了良好的物质基础。
使用计算机以后,数据处理的速度和规模,无论是相对于手工方式,还是机械方式,都有无可比拟的优势。
通常在数据处理中,计算是比较简单的而数据的管理却比较复杂。
数据管理是指数据的收集、整理、组织、存储、维护、检索、传送等操作,这部分操作是数据处理业务的基本环节,而且是任何数据处理业务中必不可少的共有部分。
数据管理技术的优劣,将直接影响数据处理的效率。
2.1.1 数据库的发展数据管理技术的发展,与硬件(主要是外存)、软件、计算机应用的范围有密切的联系。
数据管理技术的发展经过三个阶段:人工管理阶段、文件系统阶段和数据库阶段。
《数据库原理及应用》第五章SQL查询

SQL语言
SQL功能 命令动词
数据查询
数据定义 数据操纵
SELECT
CREATE、DROP、ALTER INSERT、UPDATE、DELETE
数据控制
GRANT、REVOKE
SQL语言
SQL语言的优点在于SQL不是面向过程的 语言,使用SQL语言只需描述做什么,而 不需要描述如何做,为使用者带来极大的 方便。本章将以讨论SQL的数据查询语言 为主,同时介绍数据定义语言和数据操纵 语言。本章中大部分例题使用“学生管理” 数据库,并假定数据库在Access的当前目录 下。
简单查询----选择记录
WHERE子句通过指定查询条件,可以在表中找出满足条件 的记录。查询条件可以是任意复杂的逻辑表达式。 当WHERE子句需要指定一个以上的查询条件时,要使用逻 辑运算符AND、OR和NOT将其连接成复合的逻辑表达式。 其优先级由高到低为:NOT、AND、OR,可以使用括号改 变优先级。 条件查询还可以使用LIKE或NOT LIKE进行部分匹配查询。* 表示任意长度的字符串;?表示任意单个字符。 在查询中还可以使用查询谓词,查询谓词IN 和NOT IN用于 检索属于(IN)或不属于(NOT IN)指定集合的记录。 例10 查询成绩在60分以下(不包括60分)、90分以上(含 90分)学生的学号。
连接查询(多表查询)
例13 查询会计系学生选修课程及成绩,要求查询结果中含 属性学号、姓名、课程名称和成绩。 SELECT student.学号,姓名,课程名称,成绩 FROM student,course,grade WHERE 所属院系='会计学院' and student.学号=grade. 学号 and grade.课程编号=course.课程编号 这个查询涉及到两个表,查询所要求的结果来自两个表,查 询的条件也涉及到两个表,所以有“FROM student,grade”; 这两个表之间是有联系的,这种联系是通过父表的主关键字 (student中的学号)和子表的外部关键字(grade表的学号) 建立的,所以有命令子句WHERE中的筛选条件“student. 学号=grade.学号”。 由于student表和grade表都有学号属性,因此在SELECT子 句中要用前缀的形式“student.学号”指明取自哪个表中的 学号;此例中用“grade.学号”的形式,查询结果是一样的。
第 5 章 复习 SQL(结构化查询语言)
在T_SQL中,连接查询有两大类表示 形式,一是符合SQL标准连接谓词表示形 式,二是T_SQL扩展使用关键字JOIN的表 示形式。
① 指定每个表中要用于连接的列。典型的 连接条件在一个表中指定外键,在另一个 表中指定与其关联的键。 ② 指定比较各列的值时要使用的逻辑运算 符,如“=、< >”等。
[^]
BDTWEEN„AND IS NULL
LIKE
IN EXISห้องสมุดไป่ตู้S
模式匹配,字符串匹配操作符
检查一个字段值是否属于一组值之中 检查某一个字段值是否有值,实际上,EXISTS是IS NULL的反义词
4.练习
列出性别为女的学生姓名、家庭住址 SELECT student_name, address FROM student_info WHERE student_sex='女'
SQL查询
函数及统计
分组排序
连接 子查询
5.6 基于多表的连接查询
在关系型数据库中,将一个查询同时 涉及两个或两个以上的表,称为连接查询。 基于多表的查询是通过所谓的连接查 询来完成的。连接是根据各个表之间的逻 辑关系从两个或多个表中查询数据,结果 通常是含有参加连接运算的两个表(或多 个表)的指定列的表。
列出1980年以后出生的学生的情况 SELECT * FROM student_info WHERE born_date >'1980-12-31'
列出所有家住“武汉市”的男学生姓名、电 话号码和家庭住址
SELECT student_name, tele_number, student_sex, address FROM student_info WHERE substring(address,1,3)='武汉市' AND student_sex='男'
第8讲_第五章结构化查询语言_查询
例2:查询考试成绩有不及格的学生的学号
5.3.1简单查询_选择查询
2) Where 子句_确定范围 谓词BETWEEN…AND…和NOT BETWEEN…AND…可 以用来查找属性值在(或不在)指定范围内的元组。 例3:查询年龄在18-20岁之间的学生的姓名和年龄
An Introduction to Database System
24
5.3.1简单查询_聚合函数
3、聚合函数 SQL Server提供了一系列聚合函数。通过使用这 些函数可以实现数据集合的汇总或是求平均值等各 种运算。
5类主要集函数
计数
在计算时要取消指定列中的重 复值
COUNT([DISTINCT|ALL] *)/*返回找到的行数*/ COUNT([DISTINCT|ALL] <列名>)
示例数据库
学生-课程数据库
学生表:Student(Sno,Sname,Ssex,Sage,Sdept) 课程表:Course(Cno,Cname,Cpno,Ccredit) 学生选课表:SC(Sno,Cno,Grade)
5.3.1简单查询_选择查询
(1) Where 子句_比较大小 例1:查询所有年龄在简单查询-投影查询
(3)计算列值
在进行数据查询时,经常需要对查询到的数据进
行再次计算处理。 T-SQL允许直接在SELECT语句中使用计算列。 计算列并不存在于表格所存储的数据中,它是通 过对某些列的数据进行演算得来的结果。
《MySQL数据库原理、设计与应用》第5章课后习题答案
第五章一、填空题1.逗号或,2. 33.FLOOR(3+RAND()*(11-3+1))或FLOOR(3+RAND()*9)4.NULL5.ON DUPLICATE KEY二、判断题1.错2.对3.错4.对5.对三、选择题1. D2. B3. D4. A5. C四、简答题1.请简述DELETE与TRUNCA TE的区别。
答:①实现方式不同:TRUNCATE本质上先执行删除(DROP)数据表的操作,然后再根据有效的表结构文件(.frm)重新创建数据表的方式来实现数据清空操作。
而DELETE语句则是逐条的删除数据表中保存的记录。
②执行效率不同:在针对大型数据表(如千万级的数据记录)时,TRUNCATE清空数据的实现方式,决定了它比DELETE语句删除数据的方式执行效率更高。
③对AUTO_INCREMENT的字段影响不同,TRUNCATE清空数据后,再次向表中添加数据,自动增长字段会从默认的初始值重新开始,而使用DELETE语句删除表中的记录时,则不影响自动增长值。
④删除数据的范围不同:TRUNCATE语句只能用于清空表中的所有记录,而DELETE语句可通过WHERE指定删除满足条件的部分记录。
⑤返回值含义不同:TRUNCATE操作的返回值一般是无意义的,而DELETE语句则会返回符合条件被删除的记录数。
⑥所属SQL语言的不同组成部分:DELETE语句属于DML数据操作语句,而TRUNCA TE通常被认为是DDL数据定义语句。
2.请简述WHERE与HA VING之间的区别。
1答:①WHERE操作是从数据表中获取数据,用于将数据从磁盘存储到内存中,而HA VING是对已存放到内存中的数据进行操作。
②HA VING位于GROUP BY子句后,而WHERE位于GROUP BY 子句之前。
③HA VING关键字后可以跟聚合函数,而WHERE则不可以。
通常情况下,HA VING关键字与GROUPBY一起使用,对分组后的结果进行过滤。
数据库系统教程课后答案(施伯乐)(第二版)
目录第1部分课程的教与学第2部分各章习题解答及自测题第1章数据库概论1.1 基本内容分析1.2 教材中习题1的解答1.3 自测题1.4 自测题答案第2章关系模型和关系运算理论2.1基本内容分析2.2 教材中习题2的解答2.3 自测题2.4 自测题答案第3章关系数据库语言SQL3.1基本内容分析3.2 教材中习题3的解答3.3 自测题3.4 自测题答案第4章关系数据库的规范化设计4.1基本内容分析4.2 教材中习题4的解答4.3 自测题4.4 自测题答案第5章数据库设计与ER模型5.1基本内容分析5.2 教材中习题5的解答5.3 自测题5.4 自测题答案第6章数据库的存储结构6.1基本内容分析6.2 教材中习题6的解答第7章系统实现技术7.1基本内容分析7.2 教材中习题7的解答7.3 自测题7.4 自测题答案第8章对象数据库系统8.1基本内容分析8.2 教材中习题8的解答8.3 自测题8.4 自测题答案第9章分布式数据库系统9.1基本内容分析9.2 教材中习题9的解答9.3 自测题9.4 自测题答案第10章中间件技术10.1基本内容分析10.2 教材中习题10的解答10.3 自测题及答案第11章数据库与WWW11.1基本内容分析11.2 教材中习题11的解答第12章 XML技术12.1基本内容分析12.2 教材中习题12的解答学习推荐书目1.国内出版的数据库教材(1)施伯乐,丁宝康,汪卫. 数据库系统教程(第2版). 北京:高等教育出版社,2003(2)丁宝康,董健全. 数据库实用教程(第2版). 北京:清华大学出版社,2003(3)施伯乐,丁宝康. 数据库技术. 北京:科学出版社,2002(4)王能斌. 数据库系统教程(上、下册). 北京:电子工业出版社,2002(5)闪四清. 数据库系统原理与应用教程. 北京:清华大学出版社,2001(6)萨师煊,王珊. 数据库系统概论(第3版). 北京:高等教育出版社,2000(7)庄成三,洪玫,杨秋辉. 数据库系统原理及其应用. 北京:电子工业出版社,20002.出版的国外数据库教材(中文版或影印版)(1)Silberschatz A,Korth H F,Sudarshan S. 数据库系统概念(第4版). 杨冬青,唐世渭等译. 北京:机械工业出版社,2003(2)Elmasri R A,Navathe S B. 数据库系统基础(第3版). 邵佩英,张坤龙等译. 北京:人民邮电出版社,2002(3)Lewis P M,Bernstein A,Kifer M. Databases and Transaction Processing:An Application-Oriented Approach, Addison-Wesley, 2002(影印版, 北京:高等教育出版社;中文版,施伯乐等译,即将由电子工业出版社出版)(4)Hoffer J A,Prescott M B,McFadden F R. Modern Database Management. 6th ed. Prentice Hall, 2002(中文版,施伯乐等译,即将由电子工业出版社出版)3.上机实习教材(1)廖疆星,张艳钗,肖金星. PowerBuilder 8.0 & SQL Server 2000数据库管理系统管理与实现. 北京:冶金工业出版社,2002(2)伍俊良. PowerBuilder课程设计与系统开发案例. 北京:清华大学出版社,20034.学习指导书(1)丁宝康,董健全,汪卫,曾宇昆. 数据库系统教程习题解答及上机指导. 北京:高等教育出版社,2003(2)丁宝康,张守志,严勇. 数据库技术学习指导书. 北京:科学出版社,2003(3)丁宝康,董健全,曾宇昆. 数据库实用教程习题解答. 北京:清华大学出版社,2003 (4)丁宝康. 数据库原理题典. 长春:吉林大学出版社,2002(5)丁宝康,陈坚,许建军,楼晓鸿. 数据库原理辅导与练习. 北京:经济科学出版社,2001第1部分课程的教与学1.课程性质与设置目的现在,数据库已是信息化社会中信息资源与开发利用的基础,因而数据库是计算机教育的一门重要课程,是高等院校计算机和信息类专业的一门专业基础课。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
模式的分级: 为了提高数据的物理独立性和逻辑独立性,使数据库的用户观点(用户看到的数据库),与数据库的物理方面(实际存储的数据库)区分开来,数据库系统的模式是分级的。 数据库系统三级模式结构: CODASYL(Conference On Data System Language,美国数据系统语言协商会)提出模式、外模式、存储模式三级模式的概念。三级模式之间有两级映射。 二、子模式(Sub-Schema) 子模式又叫外模式,它是用户与数据库的接口。描述用户观点的数据库的实现就叫子模式。 使用子模式的优点: 接口简单,使用方便。用户只要依照子模式编写应用程序或在终端输入操作命令,无需了解数据的存贮结构。 提供数据共享性。用同一模式产生不同的子模式,减少了数据的冗余度。 孤立数据,安全保密。用户只能操作其子模式范围内的数据,可保证其他数据的安全。 三、模式(Schema) 所有用户的公共数据视图。是数据库中全体数据的全局逻辑结构和特性的描述。又称为概念模式,它不改变数据模型的原有逻辑意义而获得一个系统能够接受的模型。 模式的主体是数据模型,模式只能描述数据库的逻辑结构,而不应涉及具体存取细节。 模式通常是所有用户的子模式的最小并集,即把所有用户的数据观点有机地结合成为一个逻辑整体,统一地考虑所有用户的要求。 五、存贮模式(Storage Schema) 存贮模式又叫内模式,它用来描述数据在存贮装置上的物理配置和组织问题。这涉及到一系列文件组织技术。 存贮模式是对数据的物理描述,是系统程序员和系统设计者所持的数据观点,他们关心的是系统的性能,数据如何在硬件上存放,如何为数据建立索引等。 包含数据库的全部存贮数据,即物理数据库,系统程序员编制专门的访问程序,实现对物理数据库的访问。 §5.2 映射与数据独立 一、外模式/模式映射 二、模式/内模式映射 三、数据独立 为了能在内部实现这三个抽象层次的内部联系和转换,数据库管理系统在这三级模式之间提供了两层映射。 映射实质上是两个事物之间的对应关系。这两层映射保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。 一、外模式/模式映射 模式描述的是数据的全局逻辑结构,外模式描述的是数据的局部逻辑结构,对应于同一个模式可以有任意多个外模式。对于每一个外模式,数据库系统都有一个外模式/模式映射,它定义了该外模式和模式之间的对应关系。映射定义通常包含在各外模式中。 当模式改变时,修改此映射,使外模式保持不变,从而应用程序可以保持不变,称为逻辑独立性。 二、模式/内模式映射 数据库中只有一个模式,也只有一个内模式,所以模式/内模式映射是惟一的。它定义了数据逻辑结构与存储结构之间的对应关系。存储结构改变时,修改此映射,使模式保持不变,从而应用程序可以保持不变,称为物理独立性。 在数据库的三级模式结构中,数据库模式是数据库的中心与关键,它独立于数据库的其他层次。因此设计数据库模式结构时应首先确定数据库的逻辑模式。 三、数据独立 数据的逻辑独立性和物理独立性统称为数据独立性。 由于有了数据独立性,数据库系统就把用户数据与物理数据完全分开了,使得用户摆脱了烦琐的物理存贮细节。 无论是那一级模式都只能是处理数据的一个框架,而按这些框架填入的数据才是数据库的内容,因此,框架和数据是两种性质不同的信息,并且分别存贮在不同的地方。 三种模式对应着三种不同的数据库,而真正存在的只有物理数据库,它是存放在外存上的实际数据,而其它两个不同的数据库在外存上是不存在的,但数据库管理系统能够从相应的物理数据库构造出概念数据库和用户数据库,因此,用户可以认为它们是存在的。 用户数据库是概念数据库的部分抽取;概念数据库是物理数据库的抽象表示;物理数据库是概念数据库的具体实现。 应用程序对数据库的访问是根据数据的三级模式由数据库管理系统(DBMS)来执行的。 一、数据描述语言 二、数据操纵语言 无论是程序员还是数据库管理员,他们均需与系统交往,这就要求为他们提供一种通讯工具,一方面向系统提供信息,另一方面从系统获取信息。这个工具就是数据语言。 数据语言包括数据描述语言(DDL---Data Description Language)和数据操纵语言(DML—Data Manipulation Language)两大部分,前者负责定义数据的各种特性,后者表达对数据进行的操作。
一、 数据描述语言 任务:用一种为计算机所能接受的手段来表达 数据模型 在数据库逻辑设计和物理设计基础上得到的数据模型一般用图解形式来表示,并加注一些简要说明,这种表示形式还不能为任何系统所直接接受和处理。 1.模式DDL 模式DDL用来定义数据库的总体逻辑结构以及由逻辑结构向存贮结构的映象。这是为数据库管理员定义模式用的一种数据描述语言。 DDL所描述的模式应包括以下基本内容: (1)能标识数据单位的类型,如数据项、记录以及数据文件; (2)对每个数据项类型、记录类型、文件类型以及其它数据单位应给出一个唯一名; (3)应说明哪些数据项类型是在一个数据项组类型、记录类型或其它数据单位里; (4)确定关键字:说明哪些数据项类型、数据项类型的部分或数据项类型的组合作为关键字使用;
2.子模式DDL 子模式DDL是为用户定义子模式提供的一种数据描述语言。子模式表示用户的数据观点,是模式的一部分,但在某种条件下,用户可以取整个模式作为其子模式,这时的子模式就是模式。子模式由子模式DDL来表达,它用来定义用户程序的局部逻辑结构向整体逻辑结构的映象。 3.物理DDL 物理DDL用来定义数据的物理存贮方式,这是系统程序员使用的语言,用来描述数据在存贮介质上的安排和存放,它和硬件设备的特性有关,这是最内层或着说是最低一级的数据描述。用物理DDL对数据库存贮结构的全部描述语句称为存贮模式。 数据:值得保留的任何信息,一般说来是电子形式的。 数据库:数据的集合;由DBMS统一管理,多用户共享 数据库管理系统: 复杂的系统软件,它支持对于持久存储的大量的数据进行高效存取,它支持强有力的查询语言,支持以看起来是原子的和独立于其他事务的方式并发地执行的持久的事务。 数据库系统:带有数据库的整个计算机系统,包括硬件、软件、数据、人员 数据存取功能 提供DML语言(Data Manipulation Language)对数据库进行检索、插入、修改、删除。 DML类型 宿主型:DML不独立使用,嵌入到高级语言(主语言)程序中使用。 自含型:独立使用,交互式命令方式。 DBMS控制并执行DML语句 宿主型:有预编译和增强编译两种方式。 自含型:解释执行。 数据库运行管理 并发控制、存取控制、完整性约束条件检查和执行,日志组织和管理,事务管理和自动恢复。 数据组织、存储和管理 用户数据、索引、数据字典的组织、存储和管理,包括文件结构、存取方式、数据之间的联系的实现等。 数据库的建立和维护功能 数据的装入、转换、卸出,数据库的转储、恢复、性能监视和分析等。 数据字典—— 专门组织存储的非应用数据的集合 数据库是一个复杂的系统,它除了包含应用数据外,还涉及很多非应用数据,诸如模式、子模式的内容、数据项的类型和长度,记录类型、用户标识符和口令等,这些非应用数据是整个数据库系统的规范化解释机制,缺少它就无法正确地理解和使用数据库系统中的数据资源。将这些非应用数据专门地组织存贮起来,形成所谓的数据字典。
数据字典是数据库设计与管理的有力工具,在数据的收集、规范化和管理等方面都要用到数据字典。 数据字典的主要内容是关于数据类型的登记表,给出数据的名称、定义、组成和属性等。数据库的活动将参照这些信息进行。 由于数据字典的内容比较复杂,因此也要对它进行严密的组织,也要用数据模型予以描述。这种描述有源形式和目标形式,包括模式表、子模式表、用户表、物理文件或区域表、内码与自然语言对照表、同义词的定义与表示等。 数据字典设立一个询问机制,对数据字典中的信息进行查询、插入、修改、删除等操作,从而给数据字典赋以“数据库”的本质,即它是关于数据描述信息的一种特殊的数据库。 由于数据字典中存贮的主要是关于应用数据的定义数据,这种关于数据的数据是元数据(meta data),因而,作为特殊数据库的数据字典又称为元数据库,或叫做关于数据库的数据库。 一、数据保护 二、故障恢复 在数据库的装入、转储和修改中,由于技术问题,尤其是在网络环境下黑客的侵入、病毒的破坏等都有引起数据库信息丢失或遭到破坏的危险;由于数据库中的数据要由多个用户所共享,时间保护问题就显得更为突出。 数据库的一个重要优点是具有保护数据以及在发生故障的情况下恢复数据的能力。 一、数据保护 关于数据保护,可从三个互相区别而又互相联系的方面来看,即数据的专用性、安全性和完整性。 1.数据的专用性 数据的专用性是指对数据库的存取控制,即数据库中的某些数据只对一定范围内的人员作一定程度的开放,无权人员(包括管理数据的专业人员和数据库管理人员)或不能阅读,或允许阅读而不能更改,等等。 2.数据的安全性 数据的安全性是指如何采取必要的措施使数据库中的数据免遭破坏或损失。数据在网络环境应用过程中,可能会由于如下原因而引起安全问题:故意对数据或程序的破坏、计算机病毒、逻辑炸弹、错误指向、程序错误、黑客、硬件搭线窃听、误操作、数据泄露、盗用、伪造、假冒、诈骗等。因此数据库中都建立有关数据的系统的安全体系。 系统的安全策略: 系统的外部安全:包括人员安全、物理安全,如制订工作人员职责,设备管理制度等。 系统内部安全:包括数据的加密/解密、身份验证、数字签名、鉴别、审计、容错和访问控制等,以及防火墙、反病毒、防黑客等技术。 3.数据的完整性 数据的完整性是指在系统中采取一些措施以保护时间在逻辑上的正确性或合理性,以避免不合逻辑的或荒谬的数据出现,在共享数据库的情况下,还要保证数据的一致性。 例如人的年龄应小于200岁,大学生的年龄应大于10岁,一个人一天的工作时间应小于24小时;数据库中主关键字应有一定的值域且不能重复,工资调整时职工的新工资一定多余旧工资,一个银行户头被取消时,其余额一定为零等。 4.并发控制 并行 Vs 串行 并行事务会破坏数据库的一致性。 串行事务效率低。 并行的优点 提高系统的吞吐量。 减少平均响应时间。 封锁的定义