赞
踩
数据库3个特点:永久存储,有组织,可共享
数据库管理技术:
人工管理:无专门的软件,数据不共享,程序与数据不具有独立性
文件系统管理:有专门用于管理数据的应用软件(以文件的形式存储在存储设备上),程序与数据具有一定的独立性,但独立性差,数据共享性差,冗余度大
数据库系统管理
数据库系统的组成:
数据库系统(DBS)包括:数据库(DB),数据库管理系统(DBMS),应用程序,数据库管理员(DBA),用户
DBMS:一种系统软件
数据库系统的特点:
数据结构化(数据库系统与文件系统的本质区别)
数据的共享性高,冗余度低,易扩充
数据独立性高
数据由DBMS统一管理和控制
数据模型的组成元素:
数据模型的分类:
概念模型:信息世界,E-R模型
实体(矩:形),属性(椭圆),联系(菱形)
联系:一对一,一对多,多对多(商品与顾客,学生与课程)
逻辑模型:机器世界,如层次模型(数据结构是一棵“有向树”),网状模型,关系模型(二维表)
物理模型:机器世界,物理存储方式与存取方法
数据库系统的三层模式结构:
数据库的二级映像:
关系就是表,表不一定是关系
关系的描述称为关系模式 eg:师生关系(教师,学生)
关系数据库:
关系的完整性:
关系操作:
**基本运算:**①并②差 ③笛卡尔积 ④投影⑤选择
传统的集合运算:并、交、差、广义笛卡尔积
并相容性:关系R与关系S属性个数相同,属性对应的域相同,对应属性名不一定相同(若不同,以前一个关系的属性名为准)
专门的关系运算:选择、投影、连接、除
选择:选符合的行
投影:选符合的列
连接:在笛卡儿积的结果中选择符合连接条件的
eg: 等值连接(同名的属性不会合并),自然连接(同名的属性会合并)
SQL方言:
SQL的功能组件:
DDL:definition定义 create ,drop
DML: manipulation操纵 select ,update, delete,insert
DCL: control 控制 grant
以下面为例讲解SQL语法:
注意事项:
--创建学生数据库:
create database 学生
--使用学生数据库
use 学生
--创建学生数据库中的Student表
CREATE TABLE Student (
--格式:列名 数据类型(长度) 约束,
Sno char (7) PRIMARY KEY ,
Sname char (10) NOT NULL ,
Ssex char (2) check(ssex in('男','女')) ,
Sage tinyint ,
Sdept char (20)
)
--常用数据类型:
--1. char(n) 固定长度为n
--2. varchar(n) 可变长度,允许最大长度为n
--3. int 占四个字节
--4 tinyint 0~255 占一个字节
--5. float
--6. datetime 日期+时间 eg:1988年1月1日19:23:59
--约束分为:
--1. 主键约束 primary key
--2. 非空约束 not null
--3. check约束
--4. 默认约束 default
--5. 唯一约束 unique
--6. 外键约束 foreign key XX references 表名(xx)
CREATE TABLE Course (
Cno char (10) PRIMARY KEY ,
Cname char (20) NOT NULL ,
Ccredit tinyint ,
Semester tinyint ,
)
CREATE TABLE sc (
sno char (7) NOT NULL ,
cno char (10) NOT NULL ,
grade smallint ,
XKLB char (6) ,
PRIMARY KEY(sno,cno),
FOREIGN KEY (cno) REFERENCES Course (Cno),
FOREIGN KEY (sno) REFERENCES Student (Sno),
CHECK (grade >= 0 and grade <= 100)
)
go
--向Student表中插入数据:
insert student values('9512101','李勇','男',19,'计算机系')
insert student values('9512102','刘晨','男',20,'计算机系')
insert student values('9512103','王敏','女',20,'计算机系')
insert student values('9521101','张立','男',22,'信息系')
insert student values('9521102','吴宾','女',21,'信息系')
insert student values('9521103','张海','男',20,'信息系')
insert student values('9531101','钱小平','女',18,'数学系')
insert student values('9531102','王大力','男',19,'数学系')
insert course values('c01','计算机文化学',3,1)
insert course values('c02','VB',2,3)
insert course values('c03','计算机网络',4,7)
insert course values('c04','数据库基础',6,6)
insert course values('c05','高等数学',8,2)
insert course values('c06','数据结构',5,4)
insert sc values('9512101','c01',90,'必修')
insert sc values('9512101','c02',86,'选修')
insert sc values('9512101','c06',NULL,'必修')
insert sc values('9512102','c02',78,'选修')
insert sc values('9512102','c04',66,'必修')
insert sc values('9521102','c01',82,'选修')
insert sc values('9521102','c02',75,'选修')
insert sc values('9521102','c04',92,'必修')
insert sc values('9521102','c05',50,'必修')
insert sc values('9521103','c02',68,'选修')
insert sc values('9521103','c06',NULL,'必修')
insert sc values('9531101','c01',80,'选修')
insert sc values('9531101','c05',95,'必修')
insert sc values('9531102','c05',85,'必修')
go
```
单表查询:select * from 表名
多表查询:
嵌套查询:
数据更新:
视图:
create view 视图名
as
在视图上不能创建基本表,可以创建视图
系统不保存视图的数据,只存储视图的定义
视图并不会加快查询速率
索引:其价值在于能优化存取路径
数据依赖的影响:数据冗余度大,更新异常,插入异常,删除异常,但不会查询异常
第一范式(1NF):给的一个关系最基本会满足1NF
第二范式(2NF): 不存在非主属性部分函数依赖于码
第三范式(3NF): 不存在非主属性传递函数依赖于码
BC范式:不存在主属性对非所在码(不包含本属性的码)的传递与部分依赖(一般有2个及以上候选码时才考虑)
第四范式(4NF): 属性之间没有非平凡且非函数依赖的多值依赖
关系模式的规范化:并不是规范化程度越高越好,有时候会适当反规范化来增加冗余,以此来提高查询效率
基本步骤:
其中,
概念结构设计中局部E-R模型的合并过程中会产生三种冲突:
逻辑结构设计中把概念模型(E-R图)转化为关系数据模型是重点
聚簇:一个数据库可有多个聚簇,一个关系只能有一个聚簇
数据库的保护:
事务:数据库应用程序的最小逻辑工作单位。
或者定义为:是用户定义的一个数据操作序列,这些操作要么全部执行,要么全部不执行,是一个不可分割的工作单元。
事务的特征:(ACID特性)
并发操作引起的问题:
对于以上的问题,采取封锁技术
基本的封锁类型:
其中,在一个事务加了S锁后只能再加S锁,在一个事务加了T锁后不能再加任何锁
封锁协议:
死锁:
预防死锁:
诊断死锁:
并发调度的可串行性:
数据恢复:
其中,
数据转储可分为
数据转储也可分为
登陆日志文件必须遵循的两个原则:
数据库文件:
SQL Server提供的安全控制:
备份方法:
T-SQL语法变量:
Declare @name varchar(10)
set @name=‘张三’
print @name
存储过程:
create procedure XX
as
begin
…
end
执行:execute XX
NoSQL:一种非关系型数据库
分为:
2017年,SQL server 2017支持Linux
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。