zoukankan      html  css  js  c++  java
  • 数据库设计

    关系数据模型结构
    关系模型由关系数据结构,关系操作结构,关系完整性约束三部分组成
    关系型数据模型中数据用二维表格的形式组成
    关系操作集合 增加、删除、修改、查询,并交等
    三种约束完整性:实体完整性、参照完整性、用户自定义完整性。
    实体完整性:实体完整性是指实体的主属性不能取空值,列如人都身份证,学生的学号
    参照完整性:关系中不允许引⽤不存在的实,例如学生不能在没有的班级 定义完整性:用户定义完整性是针对某一个具体关系的约束条件,不同的应⽤有着不同的具体要求,这些约束条件 就是用户根据需要自己定义的。例如性别取值范围为男、女。

    相关概念和常用术语:

    数据表:表是数据的矩阵。
    记录(元组):表中的一行
    字段(属性):表中的一列
    域:属性的取值范围 比如性别:男,女
    冗余:存储两倍数据,冗余降低了性能,但提高了数据的安全性。


    关系型数据库语言
    SQL:结构化查询语言(Struct Query Language)
    数据库主要是sql语句的用法,类似于操作系统的命令。
    SQL使我们有能力访问数据库
    SQL 是一种 ANSI 的标准计算机语言


    SQL
    语句不区分大小写,但在""和"中区分
    SQL能做什么?
    SQL面向数据库执行查询
    可以从数据取回数据
    可在数据库中插入新的记录
    可更新数据库中的数据
    可从数据库删除记录
    可创建新数据库
    可在数据库中创建新表
    可在数据库中创建存储过程
    可在数据库中创建视图
    可以设置表、存储过程和视图的权限

    SQL分类:
    数据库查询语言DQL
    基本结构 SELECT<字段名表>FROM<表或视图>WHERE<查询条件>
    数据操纵语言DML
    插入:INSERT 更新:UPDATE 删除:DELETE
    数据定义语言DDL
    数据定义语言DDL用来创建数据库中的各种对象-----表、视图、 索引等
    CREATE TABLE
    CREATE VIEW
    CREATE INDEX
    数据控制语句 数据控制语言DCL
    COMMIT:提交
    ROLLBACK:回滚
    配合DML使用 GRANT:授权(一般DBA使用)



    MySQL是免费开源的大型数据库,支持5000万条记录的数据仓库,32位系统表文件最大可支持4GB,64位系统最大的表文件为8TB。
    MySQL使用标准的SQL数据语言,是可以定制的,采用了GPL协议,你可以修改源码来开发自己的MySQL系统

    MySQL支持C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等

    MySQL默认数据库介绍
    information_schema:
    信息数据库。其中保存着关于MySQL服务器所维护的所有其他数据库的信息。如数据库

    SCHEMATA表:提供了当前mysql实例中所有数据库的信息.show databases的结果取自此表。
    TABLES表:提供了关于数据库中的表的信息。
    COLUMNS表:提供了表中的列信息。
    STATISTICS表:提供了关于表索引的信息。
    USER_PRIVILEGES(用户权限)表:给出了关于全程权限的信息。
    SCHEMA_PRIVILEGES(方案权限)表:给出了关于方案(数据库)权限的信息。
    TABLE_PRIVILEGES(表权限)表:给出了关于表权限的信息。
    COLUMN_PRIVILEGES(列权限)表:给出了关于列权限的信息。
    CHARACTER_SETS(字符集)表:提供了mysql实例可用字符集的信息。
    COLLATIONS表:提供了关于各字符集的对照信息。

    mysql:
    负责数据库的用户权限设置、关键字等
    performance_schema:
    收集数据库服务器性能参数。并且库里表引擎均为performance_schema
    test:
    测试数据库,和它的名字一样,是一个完全的空数据库,没有任何表,可以删除。

    MySQL的存储引擎
    插件式存储引擎是MySQL数据库最重要的特性之一,用户可以根据应用的需要选择如何存储和索引数据库,是 否使用事务等。mySQL默认⽀持多种存储引擎,以适应不同领域的数据库应用需要。
    MySQL常⽤的存储引擎为MyISAM、InnoDB、MEMORY、MERGE,其中InnoDB提供事务安全表,其他存储引 擎都是非事务安全表。
    MyISAM是MySQL的默认存储引擎。MyISAM不支持事务、也不支持外键,但其访问速度快,对事务完整性没 有要求。
    InnoDB存储引擎提供了具有提交、回滚和崩溃恢复能力的事务安全。

    常用命令
    USE 数据库名 数据库名 ;
    切换数据库
    show databases;
    列出数据库列表 show tables;

    显示当前选择数据库的所有表
    show columns from 数据表 数据表;
    显示数据表的属性
    desc 数据表;
    查看表结构
    quit;exit;
    退出MySQL
    update mysql.user set authentication_string=PASSWORD('123123');
    设置新密码
    flush privileges;
    刷新权限

    图形化管理工具
    使用GUI管理工具如MySQL Workbench,navicat ,SQLyog等等。

    数据库设计包括以下几个部分:
    需求设计
    概念结构设计
    逻辑结构设计
    物理结构设计
    数据库的实施
    数据库的运行与维护
    E-R图 实体联系图
    矩形框:表示实体
    菱形框:表示联系
    椭圆形框:表示实体的属性 属性之间存在主键
    连线:用于连接各个形状描述对应关系(1:n:m)

    学生(学号、姓名、年龄、性别、班级)
    :听课
    课程(课程号、课程名、学分)
    :授课
    教师(教师编号、姓名、年龄、性别)

    第一范式:
    关系模式中的每一个分量都应该是不可再分的数据项,也就是说实体的每一个属性不能存在子属性。


    第二范式(2NF):
    在满足第一范式的条件下,每个非主属性完全依赖主属性。

    成绩表
    学号 课程号 成绩 学分
    001 C++ 99 4
    002 数据库 88 5
    002 C++ 96 4
    003 C++ 90 6
    004 java 98 5
    001 java 86 6

    第三范式(3NF):
    在满足第二范式的基础上,所有的非主属性不能依赖于其他非朱属性。

    学号 姓名 班级号
    001 张三 01
    002 李四 02
    003 王五 03

    班级号 班级名称
    01 c++
    02 java
    03 python

    两个非主属性不能依赖于其他非主属性
    (一般数据库设计到第三范式就可以了)


    职工号 出生年月 年龄
    001 2000.1.1 19

    巴斯.科德范式(BCNF)
    称为完善第三范式,在满足第三范式的基础上,非主属性不能依赖于主属性的子集 如:成绩表中的学分,课程号和成绩不能依赖于学号。

    第四范式
    在第三范式的基础上,表中不能包含一个实体的两个或多个相互独立的多值因子

    第五范式(完美范式)
    在第四范式的基础上表必须可以分为较小的表,除非这些表在逻辑上拥有相同的主键。

  • 相关阅读:
    Linux命令大全之关机重启命令
    Linux命令大全之帮助命令及压缩命令
    Linux命令大全之搜索命令
    Linux命令大全之基本命令
    Linux安装界面简介
    Linux 的ftp服务未启用怎么办
    创建分区表
    Linux分区,格式化概念理解
    VMware简介
    Linux简介
  • 原文地址:https://www.cnblogs.com/liugangjiayou/p/11669442.html
Copyright © 2011-2022 走看看