分类: 数据库开发技术
2012-01-26 19:40:13
为什么使用数据库,而不使用文件记录数据?
数据库可以实现数据共享,使用文件记录数据,数据出现重复和不一致,且管理起来比较麻烦。
数据模型的种类:层次数据模型,网状数据模型,关系数据模型。
基本概念:字段 记录 主键 空值(NULL) 键
关系数据库是以表格为基础的,其中一个表格就是一种关系,行即记录,列即字段
集合运算:并 差 交 笛卡尔乘积
关系运算:投影 选择 连接(外键) 除
E-R模型(Entity-Relationship modal)
概念:实体 关系
关系基数:一对一 一对多 多对多
规范化nomalization---
非范式:没有去除数据重复的表格
第一范式:去除了数据重复,每行都只有一条的记录,每一列都是不可分割的数据项。
第二范式:表格中的列都可以通过其他列(不一定是主键)确定。 这种通过某一列的值确定其他列数值的原则叫做函数依赖。
第三范式:表格中的列只能通过主键确定。这种通过某一列的值间接确定其他列的值叫做传递依赖。
关系数据库设计分为概念模型、内部模型、外部模型三个部分。
SQL功能--
1. 创建表格,数据定义语言DDL(Data Definition Language)
2. 操作数据,数据录入读取,数据操作语言DML(Data Manipulation Language)
3. 控制数据库,管理用户访问,数据控制语言DCL(Data Control Language)
比较运算符 > < >= <= <>
逻辑运算符 and or not
通配符 % _
select columns from tables where column=”value” or column like “%value”
计算函数
order by column asc/desc 按column的值升/降序排列
select avg(column) from table 在table中取得column列的平均值
count(*) 取得行数
count(column) 取得column列的非空个数
count(distinct column) 取得column列的非空非重复个数
avg(column) 取得column列的平均值
sum(column) 取得column列的总数
max(column) 取得column列的最大值
min(column) 取得column列的最小值
group by column having condition
子查询&&相关子查询
连接方法:同等连接 自然连接 内部连接 外部连接 左外部连接 右外部连接
制作表格的约束(constraint):primary key , unique, not null , check , default , foreign key , references
create table table_name{ columns datatype(byte), contraint};
insert into table columns(“values”);
update table set column=”value” where condition;
delete from table where condition;
视图:从用户角度根据基本表制作出来的虚拟表格。
制作视图的语句可以是:create view view_name as select columns from table where condition;
概念:事务 锁 共享锁 独占锁 提交 同时执行控制 回滚 索引
事务 只能由提交或者回滚来结束
限制用户,限制操作(怎么做)
故障恢复(事务/介质/系统故障):日志
前卷法 回滚
事务属性:ACID(atomicity consistency isolation durablity)
更新遗失 可序列化 资源 两相锁 锁的粒度
时间戳控制 乐观控制
隔离级别设置:
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED / READ COMMITTED / REPEATABLE READ / SERIALIZABLE
权限给予grant [select,update,insert,delete,all] on table to user with grant option;
权限回收 revoke [select,update,insert,delete,all] on table from user;
索引方法:B树 散列
最优化查询:嵌套循环 分类合并 散列
Web服务器 应用服务器 数据库服务器 分布式数据库
储存程序 触发器
三层结构:
表示层—接受用户输入,并显示结果
功能层—数据库的查询,数据加工,对SQL进行整合
数据层—管理数据库,返回查询结果
分布式数据库:水平分布 垂直分布
分配数据:水平 垂直
两阶段式提交
复制的方式
读取专用
分布式数据库各个数据库之间的数据如何保存一致??
XML Extensible Makeup Language 用标签区分数据的可扩展语言
面向对象数据库