美文网首页
篇章之:数据库

篇章之:数据库

作者: Mr姜饼 | 来源:发表于2021-04-14 14:55 被阅读0次

    数据库概念

    数据库:DB
    数据库管理系统:DBMS,系统软件
    数据库系统:DBS,包括软硬件,数据库和开发人员

    数据库系统(DBS)的核心是 数据库管理系统(DBMS);数据库管理系统(DBMS)的核心是数据库(DB)

    数据库系统(DBS)的基本功能:

    1.数据定义

    2.数据操作

    3.完整性约束检查

    4.访问控制

    5.并发控制

    6.数据恢复

    数据库系统的人员构成

    DBA 管理人员

    设计者

    开发者

    终端用户

    数据库系统的三级模式结构

    外模式

    外模式/模式映像(逻辑结构的独立性)

    模式

    模式/内模式映像(物理结构的独立性)

    内模式

    概念模型

    • 实体
    • 属性
    • 实体集
    • 实体型

    E-R图

    实体集:矩形
    联系集:菱形 1:1 1:N N:1
    属性:椭圆
    三角形:从属关系

    数据模型

    任何DBMS都支持一种数据模型

    • 层次模型

    • 网状模型

    • 关系模型

    • 面向对象模型

    关系数据模型结构

    • 关系:表
    • 属性:每一列
    • 域:属性的取值范围
    • 元组:一行数据
    • 分量
    • 候选码: 唯一标志
    • 主码:有且只有一个,从候选码中选一个
    • 外部码
    • 关系模式:关系(属性A,属性B.....)

    完整性约束:

    • 实体完整性:任一候选码不能为空****
      -参照完整性:关系之间引用的一种限制
    • 用户自定义完整性

    层次模型结构

    父节点:有且仅有一个没有父节点的节点
    叶节点:没有子节点
    非根节点都有且仅有一个父节点

    网状模型结构

    属于特殊的层次模型结构

    SQL语言

    数据定义: Create Drop Alert (增删改)

    数据操作:Insert、Delete、Update、Select (增删改查)

    数据控制:Grant Revoke(增 删)

    基本表操作:

    结束语句都要以“;” 结尾

    CREATE TABLE Student(
    Sno Char(4) NOT NULL UNIQUE,
    Sex Char(2) DEFAULT('男'),

    Age INT ,

    );

    ALTER TABLE Student
    ADD Source INT NULL; (必须允许为空)

    ALTER TABLE Student
    ALTER COLUMN Source Long ;

    DROP TBALE Student;
    DROP TBALE Student , Student2;

    索引操作

    CREATE INDEX Class
    ON Student (SClass ,Sno DESC);

    表查询操作
    SELECT class
    FROM Student ;

    SELECT DISTINCT class
    FROM Student ; (取消重复行)

    查询经过计算的列
    SELECT Source*Class AS Result
    From Student;

    SUM、MAX、AVG、MIN 、COUNT(*) 、COUNT(列名)

    条件语句

    IN、NOT IN、BETWEEN * AND * 、 NOT BETWEEN * AND * 、 LIKE、ADN

    LIKE : % 不限制长度的字符串,可以为0; _ 限制长度为1

    分组查询:

    GROUP BY

    排序查询
    ORDER BY 默认升序ASC、DESC为降序

    数据操作:

    增加数据:

    INSERT INTO Stundent
    VALUES (‘张三’,‘男’);

    修改数据

    UPDATE Student
    SET Sname = ‘张三’
    WHERE Snam = ‘李四’;

    删除数据

    DELETE FROM Student
    WHERE Snam = ‘李四’;

    视图操作

    CREATE VIEW S
    AS SELECT *
    FROM Student
    WHERE SAge = 10;

    Drop View S;

    完整性约束

    主码

    CREATE TABLE Student(
    Sno Char(4) NOT NULL UNIQUE PRIVATE KEY,
    Sex Char(2) DEFAULT('男'),
    Age INT
    );

    等价于
    CREATE TABLE Student(
    Sno Char(4) NOT NULL UNIQUE ,
    Sex Char(2) DEFAULT('男'),
    Age INT ,
    PRIVATE KEY (Sno)

    ); //如果存在两个以上的主码,则用这个表示方法

    参照完整性约束
    CREATE TABLE Student(
    Sno Char(4) NOT NULL UNIQUE PRIVATE KEY,
    Sex Char(2) DEFAULT('男'),
    Age INT ,
    Class char(2) REFRENCE CLASS (Class)
    );

    等价
    CREATE TABLE Student(
    Sno Char(4) NOT NULL UNIQUE PRIVATE KEY,
    Sex Char(2) DEFAULT('男'),
    Age INT ,
    Class char(2),
    FOREING KEY(Class) REFRENCE CLASS (Class)
    );

    用户自定义完整性约束

    CHECK (条件)

    CREATE TABLE Student(
    Sno Char(4) NOT NULL UNIQUE PRIVATE KEY,
    Sex Char(2) CHECK (Sex in(‘男’ ,‘女’))
    Age INT ,
    Class char(2),
    FOREING KEY(Class) REFRENCE CLASS (Class)
    );

    数据安全

    访问控制 = 授权 + 检查权限

    GRANT SELECT,UPDATE
    ON TABLE Student
    TO User1;

    REVOKE SELECT ,UPDATE
    ON TABLE Student
    FROM User1;

    笛卡尔积: M*N 一张二维表

    投影
    选择
    连接;一般连接、自然连接、等值连接

    关系数据库规范化

    关系规范化的作用:

    不规范化可能出现的问题:
    1.数据冗余大
    2.修改异常
    3.插入、删除异常

    属性间的联系:
    一对一
    一对多
    多对多
    数据依赖:函数依赖、多值依赖、连接依赖

    判断关系是否符合2NF
    第一步:找出数据表中所有的码。
    第二步:根据第一步所得到的码,找出所有的主属性。
    第三步:数据表中,除去所有的主属性,剩下的就都是非主属性了。
    第四步:查看是否存在非主属性对码的部分函数依赖。

    判断关系是否符合3NF
    在2NF的基础上,是否存在传递依赖,如果不存在,则满足第三范式3NF

    1NF: 字段是最小的的单元不可再分
    2NF:满足1NF,表中的字段必须完全依赖于全部主键而非部分主键 (一般我们都会做到)
    3NF:满足2NF,非主键外的所有字段必须互不依赖4NF:满足3NF,消除表中的多值依赖

    数据库设计

    三分技术、七分管理、十二分基础数据

    数据库的设计步骤:
    1.需求分析
    2.概念结构设计
    3.逻辑结构设计:ER图
    4.物理结构设计
    5.数据库实施
    6.数据库运行和维护

    数据库的故障类型:
    1.事务故障
    2.系统故障
    3.介质故障
    4.计算机病毒

    数据库备份分类:
    1.完全备份
    2.差异备份
    3.增量备份
    4.按需备份

    数据库恢复技术:
    1.数据转储
    2.登记日志文件:先写日志文件 再写数据库

    事务故障恢复是由系统自动恢复的,对用户是透明的

    常见的数据库系统产品“

    1.Access:关系型数据库
    2.Informix
    3.Oracle
    4.DB2:大型
    5.SQL

    相关文章

      网友评论

          本文标题:篇章之:数据库

          本文链接:https://www.haomeiwen.com/subject/xjdclltx.html