数据库系统概论
云源
云源,唯自然而生。
展开
-
数据库设计概述
1.1数据库设计概述数据库设计广义的讲:是数据库及其应用系统的设计,即设计整个数据库应用系统数据库设计狭义的讲:是设计数据库本身,即设计数据库的各级模式并建立数据库,这是数据库应用系统设计的一部分。那么我们接下来讲的是狭义的数据库设计。设计一个好的数据库与设计一个好的数据库应用系统是密不可分的,一个号的数据库结构是应用系统的基础。特别在实际的系统开发项目中两者更是密切相关,并行进行的。1.2数据库设计一般定义 数据库设计:是指对于一个给定的应用系统环境(例如:给某学生管..原创 2020-06-15 16:38:31 · 1552 阅读 · 0 评论 -
数据库范式1NF 2NF 3NF详细阐述
范式:关系数据库中的关系是要满足一定要求的,满足不同程度要求的不同范式。满足最低要求的叫第一范式,简称1NF ,在第一范式中满足进一步要求的为第二范式,其余以此类推。通俗来说是满足数据库关系表中的一套规则。范式理论研究:Codd提出1NF,2NF,3NF概念2NF 例如:有关系模式S-L-C(Sno,Sdept,Sloc,Cno,Grade),其中Sloc为学生的住处,并且每个系的学生住在同一个地方。S-L-C的码为(Sno,Cno)。则函数依赖:Grade对(Sno,Cno)是完..原创 2020-05-20 20:05:37 · 1756 阅读 · 0 评论 -
数据库中平凡函数和非平凡函数,完全函数依赖和部分函数
上回说到 已知学生的Sno就能推出学生的Sname 记做 Sno——>Sname ,Sname =f(Sno) 语义:Sno函数决定Sname,或者说是Sname依赖函数与Sno。接下来讨论如何根据属性间依赖情况来判定关系是否具有某些不合适的性质,通常按属性间依赖情况来区分关系规范化程度为第一范式1NF,2NF,3NF,BCNF下面介绍一些术语和记号: 1. X—>Y ,但Y不属于X,则称X->Y是非平凡的函数依赖,反之是平凡的函数依赖 例...原创 2020-05-19 11:14:36 · 6834 阅读 · 0 评论 -
第六章关系数据理论
本章讨论关系数据理论 6.1问题的提出 前面已经介绍了关系数据库的基本概念,关系模型的三个部分以及关系数据库的标准语言SQL。但还有一个基本问题:如何构造一个适合它的数据库模式,这是数据库设计问题。 一个关系模式应当是一个五元组。 R(U,D,DOM,F) R:关系名,表名 U:表示一组属性 D:为属性组属性中的取值范围 DOM:为属性到域的映射 F:为属性组的数据依赖 由于D,.原创 2020-05-18 20:55:19 · 241 阅读 · 0 评论 -
数据库定义参照完整性
关系模型的参照完整性在CREATE TABLE 中用FOREIGN KEY 短语定义哪些列为外码,用REFERENCES短语指定这些外码参照哪些表的主码。例如:关系SC中一个元组表示一个学生选修的某门课程的成绩,(Sno,Cno)是主码,Sno,Cno分别参照引用Student表的主码和Course表的主码。 定义SC中的参照完整性 CREATE TABLE Student (Sno char(9) not null, Cno...原创 2020-05-18 11:03:18 · 4596 阅读 · 0 评论 -
实体完整性检查和违约处(B+树索引介绍)
实体完整性规则自动进行检查包括: 1.检查主码值是否唯一,如果不唯一则拒绝插入或修改。 2.检查主码的各个属性是否为空,只要有一个为空就拒绝插入或修改。检查记录中主码值是否唯一的一种方法是进行全表扫描,全表扫描是十分耗时的,为了避免对基本表进行全表扫描,关系数据库管理系统一般都在主码上自动建立一个索引。例如B+树索引,通过索引查找基本表中是否存在新的主码值将大大提高效率。所有的数据都在叶子节点,且每一个叶子节点都带有指向下一个节点的指针,形成了一个有序的链表。为什么要有序呢?其.原创 2020-05-17 19:23:18 · 2109 阅读 · 0 评论 -
数据库实体完整性
实体完整性:相当于给二维表属性定义约束条件,例如定义主键。使用CREATE TABLE定义 对单属性结构定义约束条件有两种方法: 列级约束条件 表级约束条件例如:将Student 表中的Sno属性定义为码 CREATE TABLE Student (Sno char(9) primary key, //在列级定义主码 Sname char (20) , not null, Ssex...原创 2020-05-16 17:06:22 · 1500 阅读 · 0 评论 -
第五章数据库完整性
数据库完整性例如,学生的学号必须唯一,性别只能是男或者女。数据库的晚这性和安全性是两个既有联系又不尽相同的概念 数据完整性:为了防止数据库存在不符合语义和不正确的数据 数据安全性:为了保护数据库被恶意破坏和非法存取所以为了维护数据库的完整性,数据库管理系统必须实现如下功能: 1.提供定义完整性约束条件的机制(数据间相互联系所制约和依存的规则),通俗的讲是约束表与表之间的关系 2.提供完整性检查的方法(检查数据是否满足完整性检查),通俗..原创 2020-05-15 11:52:50 · 422 阅读 · 0 评论 -
数据库安全性之数据加密
数据加密是防止数据库数据在存储和传输中失密的有效手段,加密的基本思想是根据一定的算法将原始数据明文,变换为不可直接识别的格式密文。数据加密主要包括存储加密和传输加密1.存储加密: 是数据在写到磁盘时对数据进行加密。2.传输加密 数据库用户与服务器之间若采用明文方式传输数据,容易被网络恶意用户篡改,存在安全隐患。数据库管理系统提供了传输加密功能。 常用的传输加密方式如:链路加密和端到端加密。 链路加密:对传输数据在链路层进行加密,它的传输信息由报头和报文..原创 2020-05-14 08:47:16 · 2116 阅读 · 0 评论 -
数据库安全性重要策略审计
前面讲了用户身份鉴别,存取控制是数据库安全保护的重要技术,但不是全部,为了使数据库管理系统达到一定的安全级别,还需要其他方面提供相应的支持 审计:把用户对数据库所有的操作自动记录下来放入审计日志中,审计员可以查看审计日志,查找非法操作和非法信息。 缺点:浪费时间和空间。主要用于安全性较高的部门。1.审计用途: 服务器事件:审计数据库服务器发生的事件,包含数据库服务器启动,停止,数据库服务配置文件的加载。 系统权限:对系统拥有的结构或陌生对象进行操作的审计 .原创 2020-05-13 09:59:51 · 576 阅读 · 0 评论 -
数据安全性强制存取控制
强制存取控制( Mandatory Access Control MAC )是指系统为保证更高程度的安全性,按照TDI/TCSEC标准中安全策略的要求所采取的强制存取检查手段。它不是用户直接感知或进行控制的。强制存取控制适用于那些对数据有严格而固定密级分类的部门,例如军事部门或政府部门。 在强制存取控制中,数据库管理系统所管理的全部实体被分为主体和客体两大类。 主体:包括数据库管理系统所管理的实际用户,也包括代表用户的各个进程。 客体:是系统中的被动实体,...原创 2020-05-12 10:55:24 · 1812 阅读 · 0 评论 -
数据库安全性控制—数据库角色
数据库角色是被命名的一组与数据库操作相关的权限,角色是权限的集合。因此,可以为一组具有相同权限的用户创建一个角色,使用角色来管理数据库权限可以简化授权的过程。例如,老师就是一个角色,拥有管理班级,分配班干部等等权限。是一个权限的集合。1.角色的创建 CREATE ROLE <角色名> 刚刚创建的角色是空的,没有任何内容。可以用GRANT为角色授权。2.给角色授权 GRANT <权限> ON <对象类型> 对象名...原创 2020-05-11 11:44:18 · 1528 阅读 · 1 评论 -
SQL中使用GRANT和REVOKE语句向用户授权或回收对数据的操作权限
1.GRANTGRANT语句的一般格式为: GRANT <权限> ON <对象类型> <对象名> TO <用户> [ WITH GRANT OPTION]其语义为:将对指定操作对象的指定操作权限授予指定的用户.发出该GRANT语句的可以是数据库管理员,也可以是该数据库对象的创建者。如果指定来WITH GRANT OPTION 子句,则获得某种权限的用户还可以把这种权限...原创 2020-05-10 11:26:29 · 12616 阅读 · 0 评论 -
数据库安全性之安全标准
数据库的安全性是指保护数据库以防止不合法使用所造成的数据泄露、更改或损坏。系统安全保护措施是否有效是数据库系统的主要技术指标之一1.安全标准简介 最具有影响的安全标准有: TCSEC(桔皮书):1985年美国国防部发布的《DoD可信计算机系统评估准则》 CC:为满足全球IT互认标准化,将各自独立的准则集合成一组单一能被广泛使用的IT安全准则 目前CC已经基本取代来TCSEC,成为评估信息产品安全性的主要标准 TCSEC/TDI(紫皮书):1991年美国国家计原创 2020-05-09 08:31:33 · 2147 阅读 · 0 评论 -
数据库安全性概述
数据库的安全性是指保护数据库以防不合法使用所造成的数据泄露,更改或破坏 。安全性问题不是数据库系统独有的,所有的计算机系统都存在不安全因素。只是在数据库系统中由于大量数据集中存放,而且为众多最终用户直接共享,从而使安全性问题更为突出。系统安全保护措施是否有效使数据库系统的主要技术指标之一。对数据库安全性产生威胁的因素主要有以下几个方面: 不安全因素方面 非法操作 安全措施技术...原创 2020-05-07 09:02:03 · 797 阅读 · 0 评论 -
SQL数据查询之嵌套查询中的带IN子查询
在SQL语言中,一个select-from-where语句称为一个查询块。将一个查询块嵌套在另一个查询块的where子句或having短语的条件中的查询称为嵌套查询 例如: select Sname /*外层查询或父查询*/ from Student where Sno in (select Sno...原创 2020-05-04 11:02:36 · 5488 阅读 · 1 评论 -
SQL中的连接查询,多表查询与等值连接
查询同时涉及两个以上的表,称为连接查询。包括等值连接查询,自然连接查询,非等值连接查询,自身连接查询,外连接查询和复合条件连接查询等1.等值与非等值连接查询 where 子句中连接两个表的条件称为连接条件 如 Student.Sname=Sc.Sno 比较运算符有= > < <= >= != <> 。当连接运算符为=时,...原创 2020-05-03 11:15:07 · 2075 阅读 · 0 评论 -
SQL中的ORDER BY排序,聚集函数,GROUP BY分组
一.ORDER BY排序 用户可以用ORDER BY子句对查询结果按照一个或多个属性列的升序(ASC)从小到大,降序(DESC)从大到小排列。默认值为升序例:查询选修3号课程的学生的学号和成绩,查询结果按分数的降序排列 select Sno,Grade from SC where Cno=‘3’ order by Grade DESC;注意:对于空值,排序...原创 2020-04-27 19:23:30 · 1223 阅读 · 0 评论 -
SQL数据查询——单表查询,where子句常用查询谓词
1.单表查询 1).查询指定列 例:查询全体学生的学号和姓名 select Sno,Sname from Student 2 ).查询全部列 例:查询全体学生的详细记录 select * from Student 3).查询经过计算的值(不仅可以是算术表达式,还可以是字符串常量,函数等) 例:查询全体学生...原创 2020-04-26 11:44:14 · 725 阅读 · 0 评论 -
模式与表,修改,删除基本表
1.模式与表 每一个基本表都属于某一个模式,一个模式包含多个基本表。当定义基本表时有三种方法定义它所属的模式方法一 在表名中明显的给出模式 create table ‘S-T’.Student(...) 方法二 在创建模式语句中同时创建表 create schema test authorization zhang(为用户张创...原创 2020-04-25 09:43:55 · 507 阅读 · 0 评论 -
SQL中的数据类型
关系模型中一个很重要的概念是域,每一个属性来自一个域。它的取值必须是域中的值。在SQL中域的概念用数据类型来实现。定义表的各个属性是需要指明其数据类型及长度。SQL标准支持多种数据类型 数据类型表 数据类型 含义 char(n),character(n) 长度为n的定长字符串(固定长度) varchar(n),chara...原创 2020-04-24 08:56:23 · 270 阅读 · 0 评论 -
主键和外键终于弄清楚了——定义基本表
SQL语言使用CREATE TABLE语句定义基本表,其基本格式: create table 表名 (列名 数据类型 [列级完整性约束条件], //约束条件可有可无 列名 数据类型) [列级完整性约束条件], .....)例如1:建立一个学生表Student create t...原创 2020-04-23 17:20:41 · 1271 阅读 · 0 评论 -
数据模式的定义,删除
1.数据定义 SQL的数据定义语句操作对象 操作方式 创建 删除 修改 模式 CREATE SCHEMA DROP SHENMA 表 CREATE TABLE DROP TABLE ALTER TABLE 视图 CREATE VIEW DROP V...原创 2020-04-22 09:43:13 · 587 阅读 · 0 评论 -
SQL的基本概念——视图,基本表,三级模式
1.SQL的基本概念 视图:是从一个或几个基本表导出的表。虚表 基本表:本身独立存在的表 存储文件:一个或多个基本表对应一个存储文件 2.三级模式总结: 数据按外模式的描述提供给用户;按内模式的描述存储在磁盘上;而概念模式提供了连接这两级模式的相对稳定的中间层,并使得两级中任意一级的改变都不受另一级的牵制。...原创 2020-04-21 11:45:59 · 2108 阅读 · 0 评论 -
SQL中的聚集函数
用户在使用查询语言时经常要作一些简单的计算,例如要求符合某一查询要求的元组数,求某个关系中所有元组在某属性上的值的综合或平均值等为了方便用户,关系数据语言建立了这类运算的标准函数库供用户选用称为聚集函数或内置函数,就如Excel当中内置的方法函数供用户自行调用运算一样. 关系演算中的聚集函数函数 说明 AVG() 返回某列的...原创 2020-04-16 19:48:17 · 262 阅读 · 0 评论 -
关系演算中的——更新操作 UPDATE语句实现
(1)修改操作 修改操作用UPDATE语句实现,步骤是: 1.首先用HOLD语句将要修改的元组从数据库中读到工作空间中 //将要修改的记录读到W中,意味着给词条数据加锁避免在操作时其他人操作导致并发情况。 2.然后用宿主语言(关系数据库语言SQL可以嵌入在高级语言的程序中使用,高级语言可以是C、ADA、PASCAL、COBOL、或PL/I等,称为宿主语言。)修...原创 2020-04-16 19:46:47 · 810 阅读 · 0 评论 -
数据库系统概述第一章——介绍一些数据库最常用的术语和数据管理技术的发展
1.1数据库的4个基本概念: (1)数据:描述事物的符号记录称为数据(可以是数字,文字,图像,音频等。数据有多种表现形式),数据的含义称为数据语义,数据与语义是不可分割的 (2)数据库:数据库是长期存储在计算机内,有组织的,可共享的大量数据集合。(概括的讲,数据库具有永久存储,有组织和可共享三个基本特点) (3)数据库管理系统:数据库管理系统和操作系统一样是计算机的基...原创 2020-04-02 21:10:29 · 479 阅读 · 0 评论