数据库概论:
数据库是指长期存储在计算机内有组织可共享的数据集合。数据库中的数据以及数据之间的关系按照一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并在一定的范围内可以被多个用户共享
数据模型:
层次模型、网状模型、关系模型,据说下一代是对象模型
关系型数据库:
关系型数据库是建立在关系数据模型基础上的数据库,借助集合代数的概念和方法处理数据库中的数据,同时也是一个被组织成具有描述的二维表格,表格的实质就是装载数据项的收集器,这些表格中的数据能以不同的方式被存取或者重新召集,而不需要更新组织数据库的表格。
目前常见RDBMS主要有:
Oracle:收费、运行稳定、性能优异、大型企业级应用开发首选
MySQL:免费、开源免费、体积小、速度快、适用于中小型企业应用开发
DB2:收费、速度快、可靠性好、适用于海量数据存储,主要用于在使用IBM组件时
SQLServer:主要在.net应用
Sybase:电信行业历史原因使用
注:这里主要教学MySQL
数据库特点:
数据库中的数据尽可能不重复,以最优化的方式为多种应用服务
数据结构独立于应用
对数据的CRUD由统一软件进行管理和控制DBMS
SQL:
SQL结构化查询语言是一种数据库操作的非过程式编程语言,用于存取数据以及查询、更新和管理关系型数据库系统,一般脚本文件后缀为.sql
经过ANSI和ISO标准化组织结构进行标准化,但是各个数据库管理系统都对标准SQL规范进行了编改和扩充,扩展部分各个数据库不通用,标准部分通用
SQL的特点:
统合统一、高度非过程化
面向集合的操作方式
以同一种语法结构提供两种使用方法,命令行方式交互和嵌入主语言
语法简单,其中只有94个英文单词,核心功能只有6个单词【insert update delete select】
NoDQL
NoSQL泛指非关系型数据库,主要用于针对超大规模和高并发社交SNS类型网站的解决方案
常见的NoSQL数据库有4种类型:
key-value数据库,使用hash表存储数据。例如Redis
列存储数据库,主要针对分布式的海量数据,例如HBase
文档型数据库,主要存储版本化的文档信息,例如MongoDB
图形化数据库,主要用于计算数据之间的关系,例如Neo4j
NoSQL适用场景:
数据模型比较简单
需要灵活性很强的IT系统中
对数据库性能要求较高
不需要高度数据一致性
*SQL vs NoSQL:
复杂查询SQL数据库比较擅长
SQL数据库不适合分层次的数据存储,NoSQL可以很好的实现数据的分层次存储
对于要求数据严格一致性的应用中SQL非常使用,而且稳定,能够保证数据操作的原子性和一致性,而NoSQL对事务的处理能力有限,一般保证最终一致性SQL厂商支持,而NoSQL是社区支持
性能对比中,NoSQL明显优于SQL数据库,一般NoSQL都充分的利用系统的内存资源
NoSQL数据库开发方便,不用考虑数据关系和格式
下一章节进入MySQL数据库-------