学习数据库系统概念,设计及应用心得
来源:互联网 发布:如何下载plc编程软件 编辑:程序博客网 时间:2024/05/14 02:06
数据字典或系统目录:是一个系统数据库,它是描述数据库中数据信息的仓库,是关于数据的数据或元数据。
元组—>行或记录 属性—>列或字段 元组的数量—>基数 属性的数量—>度
关系—>表 域—>合法的值或原子的值的集合 键—>唯一标识符
每个元组中的每个属性的值是原子的,意味着每个值取自属性的域,并且不允许有多个或重复的值。
- 超键:是一个属性或属性集合,唯一的标识了一个关系中的元组
- 关系键:一个或多个关系属性连接后的集合,大多数关系理论限制关系键为最小的属性数量,并且不包含任何不必要的属性
- 唯一性
- 没有冗余:从属性集合中删除一个属性,则剩余的属性不再拥有唯一性性质
- 有效性:键中没有属性值是空
- 候选键:当有多个属性或属性组可以作为唯一标识符
- 主键:是超键,从关系中挑选出来用于唯一标识元组的键
外键:为一个或多个属性集合,在一个关系中匹配一些其他的关系(也可能是相同的关系)中的候选键
关系代数
集合论的操作
- 专门的关系操作
笛卡尔集运算
也成叉积运算,是将一来自第一个命名表(关系)中的每个元组(行)与第二表中的每个元组进行连接。笛卡尔集将两个关系相乘定义第三个关系,第三个关系中包含这两个关系中的所有可能的元组对。因此,如果一个关系有K个元组和M个属性,另一个关系中有L个元组和N个属性,则笛卡尔积产生的关系有(N+M)个属性和(K*L)个元组。
SQL数据类型
SQL运算符
=大于等于 <= 小于等于 IN 等于任何一个成员 NOT IN 不等于任何一个成员 IS NULL 对空值进行检测 IS NOT NULL 对非空值进行检测 LIKE 当第一个表达式与第二个表达式的模式匹配是返回真 ALL 与列表中的全部值进行比较 ANY,SOME 与列表中的每个只进行比较 EXISTS 如果子查询至少返回一行为真 BETWEEN x AND y
=x并且<=y逻辑运算符 AND OR NOT 集合运算符 UNION 从两个查询中返回去掉重复行后的所以行 UNION ALL 从两个查询中返回所以行 INTERSECT 返回两个查询所选择的所有行 MINUS 返回属于第一个查询而不属于第二个查询的行 聚集运算符 AVG 平均值 MIN 最小值 MAX 最大值 SUM 合计 COUNT 计数
SQL数据库定义语言(DDL)
- CREATE TABLE
- CREATE VIEW
- CREATE INDEX
- ALTER TABLE
- DROP TABLE
- DROP VIEW
- DROP INDEX
SQL数据查询语言(DQL)
SELECT [ALL|DISTINCT] column-name
FROM table-name
[WHERE condition expression
GROUP BY column-name
HAVING condition expression
ORDER BY column-name]
SQL数据操纵语言(DML)
INSERT命令
INSERT INTO table-name[(attribute-value)]
VALUES (lists of values for row 1,
lists of values for row 2,
.
.
.
lists of values for row n);DELETE命令
DELETE FROM table-name
WHERE condition expression
delete from table1只是清除所有的数据
drop table1删除该表,包括表的结构和数据UPDATE 命令
UPDATE table-name
SET target-value-list
WHERE ondition expression
SQL数据控制语言(DCL )
GRANT
DBA用此命令授权。
GRANT privileges
ON table-name/view-name
TO user-id
得到授权的用户可以将此权限授权给其他用户。REVOKE
DBA用此命令收回用户的权限
REVOKE privileges
ON table-name/view-name
FROM user-id事务
数据库处理的逻辑工作单元,包括一个或多个数据库访问操作。锁的粒度:数据库级,表级,页级,行级,属性级
最简单的加锁模式是两种类型的锁:S共享锁(或读锁)和X排它锁(写锁)。
如果:事务T在粒度G上有一个S锁,将允许事务W发出的S锁的请求。换句话说,读-读是可交换的
- 事务T在粒度G上有一个S锁,将拒绝事务W发出的X锁的请求。换句话说,读-写是不可交换的
- 事务T在粒度G上有一个X锁,将拒绝事务W发出的任何请求。换句话说,写是不可交换的。
锁的分类
- 二元锁
锁主要有两种状态:加锁的(或称为‘1’状态),不加锁的(或称为‘0’状态)。如果数据库表,页,元组(行)或属性(字段)的一个对象被一个事务加锁了,则任何其他的事务就不能访问了。产生的问题是:若两个事务都对表进行读操作,也不能访问,不能并发,效率低。 - 共享/排他(或读/写)锁
读加锁也称为共享锁,因为允许其他的事务读取这个数据项。写加锁也称为排他锁,因为只允许有一个事务持有数据项上的锁。
自主访问控制
账户级别的权限分配:在账户级别的权限分配上,DBA为每一个账户指定独立于数据库关系(或表)的特定权限。
- CREATE SCHEMA权限:创建模式
- CREATE TABLE 权限:创建表
- CREATE VIEW权限:创建视图
- ALTER权限:添加或移除关系的 属性
- DROP权限:删除关系或视图
- MODIFY权限:删除,插入或更新元组
- SELECT权限:使用SELECT查询语句从数据库中检索信息
关系(或表)级别的权限分配:DBA控制访问数据库中关系或视图的权限。
- R上的SELECT权限:查询或读取R中的元组
- R上的MODIFY权限:修改(UPDATE,INSERT和DELETE)R中的元组
R上的REFERENCES权限:引用关系R
eg:
GRANT {ALL|privilege-list}
ON {table-name[(column-comma-list)]|view-name[(column-comma-list)]}
TO {PUBLIC|user-list}
[WITH GRANT OPTION]
ALL:说明将指定对象的所有操作权限都赋于指定用户
privilege-list:权限列表
ON:指明了对哪个对象的权限,该对象可以是表或视图
column-comma-list:约束指定列的权限。如果没有指定,那么权限将覆盖整个的表和视图
TO:用来指定被授权的用户
PUBLIC:表示把权限授予系统中所有具有有效用户ID和口令的用户
user-list:被授权用户列表
WITH GRANT OPTION:说明被授权用户可以将指定的权限授予其他用户
收回权限的例子:
eg:
REVOKE {ALL|privilege-list}
ON {table-name[(column-comma-list)]|view-name[(column-comma-list)]}
FROM {PUBLIC|user-list}
级联授权,收回权限也是级联收回。
- 学习数据库系统概念,设计及应用心得
- [心得]数据库系统概念知识整理
- 【数据库设计】数据库设计理论及应用(4)——概念结构设计
- 数据库系统概念学习01
- 《数据库系统概念》学习笔记
- [心得]分布式系统概念与设计知识整理
- 数据库设计理论及应用(4)——概念结构设计
- 数据库设计理论及应用(4)——概念结构设计
- 数据库-----游标概念及应用详解
- 数据库设计理论及应用
- 学习 管理数据库及表 心得
- RabbitMQ学习之:(一)初识、概念及心得
- RabbitMQ学习之:(一)初识、概念及心得
- RabbitMQ学习之:(一)初识、概念及心得
- 数据库系统概念 第一章 学习笔记
- 《数据库系统概念》学习笔记 一
- 《数据库系统概念》学习笔记之二
- 《数据库系统概念》学习笔记之三
- Bootstrap工具提示框
- Referenced file contains errors (http://www.springframework.org/schema/beans/spring-beans-3.1.xsd).
- Bootstrap弹出框
- Oracle花样查询之LIKE模糊查询
- Bootstrap警告框
- 学习数据库系统概念,设计及应用心得
- Bootstrap折叠效果
- 数据库完整性约束
- javaSE_06Java中的数组(array)
- Bootstrap折叠实战
- timer 公司内部用法
- 第七章:函数表达式(模仿块级作用域和私有变量)
- [Codeforces452E]Three strings(后缀自动机)
- HDU 2923 Einbahnstrasse(两种方法)