数据库学习笔记(一)

Updated December 26, 2018

数据库系统概述

  • 数据库: 长期存储在计算机内, 有组织的, 可共享的大量数据的集合. 数据库数据具有永久存储, 有组织和可共享三个特点
  • 数据库管理系统: 位于用户与操作系统之间的一层数据管理软件.
  • 数据库系统: 由数据库, 数据库管理系统, 应用程序和数据库管理员组成的存储, 管理, 处理和维护数据的系统

数据模型

数据模型是数据库系统的核心和基础.
概念模型
按用户的观点来对数据和信息建模, 主要用于数据库设计
概念模型的表示方法很多, 其中最为常用的一种是实体-联系方法, 该方法用E-R图来描述.
逻辑模型
主要包括层次模型, 网状模型, 关系模型, 面向对象数据模型, 对象关系数据模型和半结构化数据模型. 按计算机系统的观点对数据建模, 主要用于数据库管理系统的实现.
物理模型
描述数据在系统内部的表示方式和存取方法
数据模型的组成要素:

  1. 数据结构: 描述数据库的组成对象以及对象之间的联系
  2. 数据操作: 指对数据库中各种对象的实例允许执行的操作的集合
  3. 数据的完整性约束条件: 给定的数据模型中数据及其联系所具有的制约和依存规则, 保证数据的正确, 有效和相容

逻辑模型:

  1. 层次模型
    用树形结构来表示各类实体以及实体间的联系.
    (1)有且只有一个结点而没有双亲结点, 这个结点称为根结点
    (2)根以外的其他结点有且只有一个双亲结点
    优点: 数据结构比较简单清晰, 查询效率高, 层次数据库性能优于关系数据库, 不低于网状数据库
    缺点: 查询子女结点必须通过双亲结点, 实际上有一些结点之间具有多对多联系, 不适合用层次模型
  2. 网状模型
    (1)允许一个以上的结点没有双亲
    (2)一个结点可以有多于一个的双亲
  3. 关系模型
    关系(relation): 一个关系对应通常说的一张表
    元组(tuple): 表中的一行即为一个元组
    属性(attribute): 表中的一列即为一个属性
    码(key): 表中的某个属性组, 可以唯一确定一个元组
    域(domain): 一组具有相同数据类型的值的集合. 如大学生年龄属性的域是(15~25)

数据库系统模式

  1. 模式(schema)
    数据模型中有型和值的概念, 型是指对某一类数据的结构和属性的说明, 值是型的一个具体赋值. 模式(schema)是数据库中全体数据的逻辑结构和特征的描述, 仅仅涉及型的描述, 不涉及具体的值. 模式的一个具体值称为模式的一个实例. 一个数据库只有一个模式
  2. 外模式(external schema)
    也称子模式或用户模式, 是数据库用户能看见和使用的局部数据的逻辑结构和特征的描述. 一个数据库可以有多个外模式
  3. 内模式(internal schema)
    也称存储模式, 一个数据库只有一个内模式, 它是数据物理结构和存储方式的描述.

关系数据库

基本的关系操作: 选择(select), 投影(project), 并(union), 差(except), 笛卡尔积
关系完整性

  • 实体完整性: 若属性A是关系R的主属性, 则A不能取空值
  • 参照完整性: 设F是关系R的一个属性, 但不是R的码, K是关系S的主码, 如果F和K相对应, 则称F是K的外码(foreign key)
  • 用户定义的完整性: 反映某一具体应用所涉及的数据必须满足的语义要求

数据库安全性

用户身份鉴别

  1. 静态口令鉴别: 设置口令强度, 在存储和传输过程中口令信息均以密文方式存在
  2. 动态口令鉴别: 每次鉴别时均需使用动态产生的新口令登录数据库管理系统
  3. 生物特征鉴别: 采用图像处理和模式识别等技术实现了基于生物特征的认证
  4. 智能卡鉴别: 智能卡是一种不可复制的硬件, 内置集成电路的芯片, 具有硬件加密功能

存取控制
存取控制主要包括定义用户权限和合法权限检查两部分

  1. 定义用户权限, 并将用户权限记录到数据字典中
  2. 合法权限检查, 若用户的操作请求超出了定义的权限, 系统将拒绝此操作

授权: 授予和收回

-- 把对Student表和Course表的全部操作权限授予用户u1和u2
grant all privileges on table Student, Course to u1, u2;

-- 把对表SC的查询删除权限授予所有用户
grant select, delete on table SC to public;

-- 把修改学生学号的权限授予用户u1
grant update(Sno) on table Student to u1;

-- 把对表SC的insert权限授予u1用户, 并允许将此权限再授予其他用户
grant insert on table SC to u1 with grant option;

-- 级联收回u1对表SC的查询权限
revoke select on table SC from u1 cascade;

数据库完整性

数据的完整性是为了防止数据库中存在不符合语义的数据, 也就是防止数据库中存在不正确的数据

-- 当学生的性别是男时, 其名字不能以Ms.开头
create table Student(
    Sno char(9) primary key,
    Sname char(8) unique not null,
    Ssex char(2),
    check(Ssex = '女' or Sname not like 'Ms.%')
);

完整性约束命名子句

-- 建立学生表Student, 要求年龄小于30, 性别只能是男或女
create table Student (
    Sno char(9),
    Sname char(20) constraint c1 not null,
    Sage smallint constraint c2 check(Sage < 30),
    Ssex char(2) constraint c3 check(Ssex in ('男', '女')),
    constraint c4 primary key(Sno)
);

-- 去掉Student表中对性别的限制
alter table Student drop constraint c3;

-- 修改Student表中的约束条件, 年龄由小于30改为小于25
alter table Student drop constraint c2;
alter table Student add constraint c2 check(Sage < 25); 

数据库设计

需求分析

  1. 调查用户需求
    (1)信息要求. 指用户需要从数据库中获得信息的内容和性质
    (2)处理要求. 指用户要完成的数据处理功能, 对处理性能的要求
    (3)安全性和完整性要求

概念结构设计

E-R图:

  1. 作为属性, 不能再具有需要描述的性质
  2. 属性不能与其他实体具有联系

逻辑结构设计

物理结构设计

数据库实施

数据库运行和维护

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值