1.数据管理技术的3个发展阶段
目前阶段,存储和数据管理都离不开数据库,数据库内部的DBMS(数据库管理系统)是数据库的核心软件之一,是位于用户和操作系统之间的数据管理软件,用于建立使用和维护数据库
在人类管理数据有三个发展阶段
1.人工管理阶段
在计算机未问世之前,人们对于数据的管理主要利用算盘,计算尺,记录账本,主要依靠大脑来管理和利用数据
缺点:数据不能长期保存
不便于查询
不能共享
不具有独立性
2.文件系统阶段
在20世纪50年代到20世纪60年代中期,计算机中的磁盘开始普及,此时可以将数据存储到在计算机的磁盘上,这些数据都以文件的形式存储,然后通过文件管理系统来管理这些文件,弥补了不能长期保存和人脑来管理等缺点
缺点:独立性差
共享性差
无法应对突然事故(文件误删,磁盘故障)
3.数据库系统阶段
在20年代后期至今计算机的硬件和软件进步,出现了数据库的技术
弥补文件系统的所有缺点,并且共享性高,独立性强,颗粒度小,并且由数据库统一管理和保存
2.数据库的组成
1.数据库:用于存储数据
2.数据库管理系统DBMS:用于管理数据库的地方
3.数据库应用软件:为了提高数据库各种性能而使用的管理数据库库的应用软件补充
3.数据库类型
1.层次数据库(已淘汰)
2.关系型数据库(JAVA常用开发数据库类型),由行和列组成的二维表
3.面向文档数据库(和键值对类型类似,升级版,运行之间嵌套键值,查询性能比键值对类型高)
4.列存储数据库(数据存储存储在列中)
5.XML数据库(是用来支持XML存储的数据库,对于XML进行查询,导入导出,序列化)
6.键值对数据库(内部为键值对存储)
4.MySQL特点、优势
MySQL是开放源代码的数据库:
这可以使得任何人都可以修正Mysql的缺陷,任何人都可以任何目的使用数据库,是一款自由的数据库
MySQL的跨平台性:
作为一款可以跨平台性,所在保证了在Web应用上面的优势
价格优势:
对于Orcle、db2这些价格昂贵的数据库,MySQL有着绝对的价格优势
功能强大且使用方便:
MySQL是一个真正的多用户,多线程SQL数据库服务器,它有绝对快速、有效和安全的处理大量数据。相对于Oracle数据库来说,是非常简单的
5.SQL语句加强以及额外内容学习
LIKE使用:SHOW DATABASES LIKE ‘数据库名字’;
SHOW DATABASES LIKE ‘粗略查找%’…
关于注解区别: #和—
#直接在后面加注释内容 —在第二个破折号后添加一个空格后加注解后添加内容
数据库名、表名的大小写问题,sql语句不区分大小写,而表名和库名在不同的系统有区别,Windows不区分大小写的原因,所以数据库在Windows系统中不需要区分大小写,而Linux系统区分文件大小写,所以在Linux数据库也区分,mac是个例外,不区分大小写
数据库设计基本步骤:
1.需求分析:根据客户需求进行分析
2.概念设计:综合、抽象用户需求,形成DBMS概念模型绘制E-R图
3.逻辑结构设计:将E-R图转换为多张表,并进行主外键表关联绑定,对表进行优化
4.物理设计阶段:根据项目技术实现和团队开发能力和成本预算,选择具体数据库实现
5.数据库实施阶段:工具及宿主语言,根据逻辑设计和物理设计结果建立数据库,编辑与调试应用程序,并进行试运行
6.修正维护阶段:在项目上线期间对bug等各方面问题进行维护
数据库设计的三大范式:
1.保持原子性:将数据库表中的字段都是不可分解的原子值
2.确保表中的每一个列都和主键相关:选中的主键要和当前表中的每一个字段息息相关
3.确保每一列的数据都和主键直接相关,而不是间接相关
数据的概念:
对象Object:也称为实体类,在现实世界中具有想用性质,遵循相同规则的一类事物的抽象称为对象.对象时实体数据化的结果
实例:对象中具体的某一事物
属性:某一方面特征的抽象表示
主码:唯一表示
次码:实体中不能唯一标识实体的实行
域:取值范围
数据库类型共有5种:
1.整数类型 2.浮点数类型 3.字符串类型 4.日期类型 5.二进制类型
5.1.5种类型
整数:
TINYINT超小
SMALLINT小
MEDIUMINT中的
INT正常
BIGINT大的
浮点数
FLOAT单精度浮点数
DOUBLE双精度点数
DECIMAL(M,D)定位浮点数
日期和时间类型
TEAR YYYY 年
TIME HH:MM:SS 时间
DATE YYYY-MM-DD 年月日
DATETIME YYYY-MM-DD HH:MM:SS 年月日时期
TIMESTAMP
字符串:
CHAR(M)固定字符串
VARCHAR(M)变长字符串
TINYTEXT小文本类型
TEXT文本类型
MEDIUMTEXT中文本类型
LONGTEXT大文本类型
ENUM枚举类型
SET设置
二进制类型:
暂不进行底层学习
mysql的数据库存储引擎大致有9种
主要InnoDB和MyISAM为主
5.2.MySQL的约束
主键约束 PRIMARY KEY AOTU_INCREMENT
外键约束 CONSTRAINT * FOREIGN KEY
唯一约束 UNIQUE
检查约束 CHECK
默认约束 DEFAULT
非空约束 NOT NULL