mysql运维 读书笔记_MySQL读书笔记-1

MySQL核心技术与最佳实践-孔祥盛

---------Capital 1---------

数据库是存储,管理数据的容器。

该容器包含诸多数据库对象,例如:表,视图,索引,函数,存储过程,触发器,事件等。

用户如很能够访问到该容器中的数据库对象呢?

-> 答:通过数据库管理系统(DBMS= Databse Managementsystem),用户可以实现对对象们的增删改查。

DBMS通常会选择某种“数学模型”来管理DB,常见的有:

层次模型,

网状模型,

关系模型,

面向对象模型。

其中关系模型最受欢迎,对应的管理系统被称为RDBMS=Ralational Databse Managementsystem.

°°关系数据库管理系统/RDBMS

知名的有德国SAP的Sybase,美国甲骨文的Oracle,MySQL,还有被集成在用户程序中的SQLite。

所谓“关系”,实质上是一张二维表(Table,也被称为数据表,表)。一个DB常包含多个二维表。表中列(字段)都由一个列名进行标记;行即纪录。乍一看和电子表格(如Excel)很想,但不同的是,DB Table的字段名不能重复,且每一列都必须制定某种数据类型。

°°SQL

SQL=Structured Query Language结构化查询语言,是应用最广的关系数据库语言。

不同的管理系统会有基于SQL,但稍作修改,只能自己用的SQL扩展语句,为了方便区分,把标准的称为“SQL语句”,扩展部分称为“MySQL命令”或者“SQLite命令”。(拿SQLite来说,SQLite遵守ACID,实现了大多数SQL标准。它使用动态的、弱类型的SQL语法。)

对于上面问题的优化/解决方法:

遵守一定的SQL编码规范,例如:

1. 命名规范:

使用用英文语义;

常用驼峰标记法(第一个单词首字母小写,其余单词首字母大写)或者下划线分割法(所有字母小写,间隔用表示)

避免在名字中出现关键字(table,database等)

2. 注释:

MySQL单行注释以#或者两个短划线加上一个空格(“_ ”)开始;

多行注释为/* ... */

3. 其他:

关键字不区分大小(database=DATABASE);

表名等变量区分大小

°°ER图

ER=Entity-Relationship Diagram。

关系数据库的设计从ER图的设计开始。ER图集可以表示现实世界中的事物,又可以表示事物之间的关系,它描述了软件系统的数据存储需求。其中E表示实体,R表示关系,ER图由实体-属性-关系3要素构成!

要素1: 实体/Entity:

用于表示现实世界具有相同属性的事物的集合,而不是某一具体事物。如图,用矩形表示,每个实体由唯一的实体名标识。

数据库开发中,每个实体对应一个数据表/Table。

要素2: 属性/Attribute:

用于表示实体的某种特征,也可以使用属性表示实体之间关系的特征。如图,属性都写在实体矩形的内部,每个属性由唯一的属性名标识。

0395abf6c92b

实体/Entity与属性

⚠ 注意:ER图中,属性应该是一个不可再分的最小单元!如果属性能够再分,则(1)可以考虑分开成多个属性,则(2)可以考虑将属性“升级”为另一个实体。

例如:属性“联系方式”可分为电话,Email,QQ,则

(1)将“联系方式”拆分为三个属性“电话”,“Email”和“QQ”

(2)将“联系方式”升级为实体,该实体有“电话”,“Email”和“QQ”三个属性

要素3: 关系/Relationship:用于表示实体间存在的联系。在ER图中用一条线段表示。

⚠ 注意:这种关系是双向的。例如班级实体与学生实体之间的双向关系中,(1)一个班级包含n个学生和(2)一个学生只能属于一个班级,这两个“单向”的关系组成了这条“双向”的联系。 -> 这点很重要,因为有时候从另一个方向纪录关系会容易得多。

->->在ER图中,实体间关系有这3个重要概念:基数,元,关联 ->->

** 1)基数/Cardinality/Kardinalität:**

表示一个实体到另一个实体之间关联的数目。是针对关系之间的某个方向提出的概念。可以是取值范围/具体数值。

-> 当基数min=1时,表示强制关系/mandatory,对应于非空约束/Not Null Constraint

-> 当基数min=0时,表示可选关系/optional

0395abf6c92b

基数(强制关系和可选关系)

注意:两者表达方式不同!!

-> 从基数的角度,可以将关系分为一对一(1:1),一对多(1:m),多对多(n:m)

2)元/set-theoretic:

表示关系所关联的实体个数,上面所提到的每个关系都是二元关系/Binary relation。有些实体可能存在一元关系/回归关系,或者多元关系(例如三元关系/ternary relation)

3)关联/association:

一元关系:例如人与人之间的“夫妻关系”。假设现在要加上“登记时间”这个属性,就要用到关联/association。如图

0395abf6c92b

关联在一元关系中的应用

多元关系:直接贴图如下

0395abf6c92b

关联在多元关系中的应用

ER图 设计原则:一事一物

a)属性应该存在且只属于某一个地方

b)实体作为一个独立的个体,不能存在于另一个实体中作为属性出现

c)在一张ER图中,一个实体最好只出现一次

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值