数据库
文章
0 数据库系统概论目录
基础篇 主要讲解了关系数据库的理论知识,和作为单个数据库内部的结构。 1. 数据模型和系统结构2. 关系运算3. 数据类型说明4. SQL5. 完整性约束6. 安全性7. 断言和触发器设计篇 主要讲解了如何设计数据库,在面对具体的问题时,处理问题的过程。 1. 规范化 1NF,2NF,3NF,4NF 2. 设计步骤 需求分析,概念设计,逻辑设计,物理设计 3. 编程(未讲)系统篇 主要讲解了数据库如何应用。在应用过程中面临的问题和解决的办法。 1. 查询处理和查询优化2. 并发控制3. 数据库管理系统(未讲)新技术篇1. 数据库发展过程2. 大数据管理3. 内存数据库系统
基础篇——1.数据模型和系统结构
基础篇——1 数据模型和系统结构1 定义 数据库:存储数据的仓库,为了方便数据的存储和管理 数据库系统:(DBS)比数据库大很多,由数据库、数据库管理系统、应用开发工具构成 数据库管理系统:(database managementsystem)。用来定义数据库、管理和维护数据的软件。像Oracle,MySQL等是管理系统 2 SQL概念 structure query language,结构化查询语言,数据库管理系统通过SQL语言来管理数据库中的数据 组成部分: DDL:(data defination language)数据定义语言,定义数据库、表、视图、索引、触发器。 DML:(data manipulation language)对数据的增删改,INSERT插入数据、UPDATA更新数据、DELETE删除数据 DQL:(data query language):数据检索语言。用来从表中获得数据,确定数据怎样在应用程序中给出。SELECT查询数据 DCL:(data control language):数据控制语言,主要用于控制用户访问的权限,想GRANT、R...
基础篇——3.数据类型
MySQL数据类型整型TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT 分别使用 8, 16, 24, 32, 64 位存储空间,一般情况下越小的列越好。 INT(11) 中的数字只是规定了交互工具显示字符的个数,对于存储和计算来说是没有意义的。 浮点数FLOAT 和 DOUBLE 为浮点类型,DECIMAL 为高精度小数类型。CPU 原生支持浮点运算,但是不支持 DECIMAl 类型的计算,因此 DECIMAL 的计算比浮点类型需要更高的代价。 FLOAT、DOUBLE 和 DECIMAL 都可以指定列宽,例如 DECIMAL(18, 9) 表示总共 18 位,取 9 位存储小数部分,剩下 9 位存储整数部分。 字符串主要有 CHAR 和 VARCHAR 两种类型,一种是定长的,一种是变长的。 VARCHAR 这种变长类型能够节省空间,因为只需要存储必要的内容。但是在执行 UPDATE 时可能会使行变得比原来长,当超出一个页所能容纳的大小时,就要执行额外的操作。MyISAM 会将行拆成不同的片段存储,而 InnoDB 则需要分裂页来使行放进页内...
基础篇——4.SQL
1 数据库基本对象DDL(数据库定义语言) sql 不提供修改模式定义和修改视图定义的操作。如果想要更改,智能删除重建。数据库中操作的基本对象主要有以下内容:模式、表、视图、索引 1.1 基本对象概述 主要包括增删改。没有针对基本对象的查询。就像你会查询表中的数据,但是不会查询存在的某一张表。查询表不存在,应该是查询表中的数据。 操作对象 创建 删除 修改 模式SCHEMA CREATE SCHEMA DROP SCHEMA 表TABLE CREATE TABLE DROP TABLE ALTER TABLE 视图VIEW CREATE VIEW DROP VIEW 索引INDEX CREATE INDEX DROP INDEX ALTER INDEX 字段COLUMN ADD COLUMN DROP COLUMN ALTER COLUMN 12345graph LR模式Schema-->表Table模式Schema-->视图View表Table-->索引Index表Table-->字段Colume 基本对象的...
基础篇——5.完整性
完整性 引言:广义上,人们习惯将完整性分为三类:实体完整性、参照完整性、用户自定义完整性。(课本上如此定义) 狭义上,有五个最重要的完整性约束方法:主键约束、外键约束、唯一约束、非空约束、检查约束。 其中 实体完整性通过主键实现,参照完整性通过外键实现,用户自定义的完整性约束主要包括唯一约束、非空约束、检查约束。 主键约束主键约束是数据表一个或多个用以实现记录唯一性的字段,虽然使用中通常由一个字段标识,但是也可以使用多个字段组成(联合主键)。 主键的作用在于表中的每条记录都具有一个唯一的值,如一个人的身份证号,具有唯一性。用于作为某人的识别标志。创建主键的三种方式: 1234create table TEST_TBL (-- 主键(主键约束) primary key 唯一的约束该字段里面的数据,不能重复,不可为空id int primary key ); 123456create table TEST_TBL (-- 主键(主键约束) primary key 唯一的约束该字段里面的数据,不能重复,不可为空-- 可用于创建联合主键 primary key(参数列表,...
基础篇——6.安全性
1 数据库安全性概述1.1 数据库的不安全因素 非授权用户对数据库恶意存取和破坏 数据库中重要或敏感的数据被泄露 安全环境的脆弱性 1.2 安全性标准 通用准则 CC Common Criteria D 最低级别DOS C1 初级的自主安全保护,能够实现用户和数据的分离,进行自主存取控制DAC,保护或限制用户权限的传播。 C2 安全产品最低档。提供受控的存取控制。Windows2000,Oracle7 B1 标记安全保护,对系统的数据加以标记,并对标记的主体和客观实体实行强制存取控制。MAC以及审计等安全机制。是真正意义上的安全产品 B2 结构化保护。建立形势话的安全策略模型,并对系统内的所有主体和客体实施DAC和MAC。 B3 安全域。TCB必须满足访问监控器的要求,审计跟踪能力更强,并提供系统恢复过程。 A1 验证设计。提供B3级保护,并且,给出系统的形式化设计说明和验证。 2 数据库安全性控制 用户身份鉴别、多层存取控制、审计、视图、数据加密 2.1 用户身份鉴别 静态口令鉴别 动态口令鉴别 生物特征鉴别 智能卡鉴别 2.2 存取控制简介 存取控制主要包括定义用...
基础篇——7.断言和触发器
1 断言2 触发器 trigger触发器是用户定义在关系表示的一类由事件驱动的特殊过程。用户操作,自动激活触发器。 2.1 定义触发器12345678910111213141516171819202122232425262728293031323334353637383940CREATE TRIGGER <触发器名>{BEFORE|AFTER} <触发事件> ON <表名>REFERENCING NEW|OLD ROW AS <变量>FOR EACH {ROW|STATEMENT}[WHEN<触发条件>]<触发动作体># 行级触发器示例:对SC的Grade属性进行修改时,若分数增加10%,则将此次操作记录到另一个SC_U(Sno,Cno,Oldgrade,Newgrade)中。CREATE TRIGGER SC_TAFTER UPDATE OF Grade ON SCREFERENCING OLDROW AS OLDTuple NEWROW AS ...
设计篇——1.规范化
1 规范化1 函数依赖记 A->B 表示 A 函数决定 B,也可以说 B 函数依赖于 A。 如果 {A1,A2,… ,An} 是关系的一个或多个属性的集合,该集合函数决定了关系的其它所有属性并且是最小的,那么该集合就称为键码。 部分函数依赖 设X,Y是关系R的两个属性集合,存在X→Y,若X’是X的真子集,存在X’→Y,则称Y部分函数依赖于X。 举个例子:学生基本信息表R中(学号,身份证号,姓名)当然学号属性取值是唯一的,在R关系中,(学号,身份证号)->(姓名),(学号)->(姓名),(身份证号)->(姓名);所以姓名部分函数依赖与(学号,身份证号); 完全函数依赖 设X,Y是关系R的两个属性集合,X’是X的真子集,存在X→Y,但对每一个X’都有X’!→Y,则称Y完全函数依赖于X。 例子:学生基本信息表R(学号,班级,姓名)假设不同的班级学号有相同的,班级内学号不能相同,在R关系中,(学号,班级)->(姓名),但是(学号)->(姓名)不成立,(班级)->(姓名)不成立,所以姓名完全函数依赖与(学号,班级); 传递函数依赖 设X,Y...
设计篇——2.设计步骤
设计篇——设计步骤1 ER 图定义Entity-Relationship,有三个组成部分:实体、属性、联系。 用来进行关系型数据库系统的概念设计。 实体的三种联系包含一对一,一对多,多对多三种。 如果 A 到 B 是一对多关系,那么画个带箭头的线段指向 B; 如果是一对一,画两个带箭头的线段; 如果是多对多,画两个不带箭头的线段。 下图的 Course 和 Student 是一对多的关系。 表示出现多次的关系一个实体在联系出现几次,就要用几条线连接。 下图表示一个课程的先修关系,先修关系出现两个 Course 实体,第一个是先修课程,后一个是后修课程,因此需要用两条线来表示这种关系。 联系的多向性虽然老师可以开设多门课,并且可以教授多名学生,但是对于特定的学生和课程,只有一个老师教授,这就构成了一个三元联系。 表示子类用一个三角形和两条线来连接类和子类,与子类有关的属性和联系都连到子类上,而与父类和子类都有关的连到父类上。













