数据库基础
数据库基础
1.什么是数据库
数据库:database
高效的存储和处理数据的介质(磁盘和内存)
2.数据库分类
根据存储介质:
- 关系型数据库:SQL
- 非关系型数据库:NoSQL(Not Only SQL)
3.不同的数据库阵营中的产品有哪些?
关系型数据库:
- 大型:Oracle,DB2
- 中型:SQL-SERVER,Mysql等
- 小型:access等
非关系型数据库:memcached,mongodb,redis(同步到磁盘)
4.两种数据库阵营的区别?
关系型数据库:安全
(保存到磁盘基本不可能丢失),容易理解,比较浪费空间(二维表,没数据还是有表格存在)
非关系型数据库:效率高,不安全(断点丢失)
关系型数据库 ——维护实体内部,实体与实体之间的关系
- 定义:是一种建立在
关系模型
(数学模型)上的数据库
关系模型
——>数据结构:数据存储的问题,二维表(行和列)
——>数据指令集合:所有SQL语句
——>完整性约束:表内数据约束(字段与字段),表与表之间约束(外键) - 关系型数据库设计
---数据需求分析:
一类数据(实体):—— 二维表(数据名字和实际存储数据单元
)
表头 | 字段名1 | 字段名2 |
---|---|---|
数据单元 | 数据1 | 数据2 |
举例关系型数据库设计:
教务系统
学生表
班级表
关键字
DBS=DBMS+DB
数据库:database
数据库系统:DBS(Database System):是一种虚拟系统,将多种内容关联起来的称呼
DBMS:Database Management,数据库管理系统,专门管理数据库
DBA:Database Administrator,数据库管理员
行/记录:row/record,本质是一个东西:表中的一行(一条记录)。行从结构角度
出发,记录从数据角度
出发
列/字段:column/field,本质是一个东西
SQL
SQL:Structured Query Language,结构化查询语言(因为大多在查询99%)
SQL分3部分:
- DDL:Data Definition Language,数据定义语言,用来维护存储数据的结构(数据库,表),指令代表:create,drop,alter等
- DML:Data Mainpulation Language,数据库操作语言,用来对数据进行操作(数据表中的内容),代表指令:insert,delete,update等。其中DML内部又分了一个=>DQL(Data Query Languager:数据查询语言,如:select)
- DCL:Data Control Language,数据控制语言,主要负责权限管理(用户),指令代表:grant,revoke等
SQL是关系型数据库的操作指令,是一种约束,但不强制。
持久化和序列化,transient关键字
1. 持久化(Persistence):持久化是将程序数据在持久状态和瞬时状态间转换的机制。通俗的讲,就是瞬时数据(比如内存中的数据,是不能永久保存的)持久化为持久数据(比如持久化至数据库中,能够长久保存)。
通过输入输出流实现:
- java.io.ObjetOutputStream
- java.io.ObjectInputStream
2. 序列化:在数据储存与传送的部分是指将一个对象存储至一个储存媒介,例如档案或是记亿体缓冲等,或者透过网络传送资料时进行编码的过程,可以是字节或是XML等格式。而字节的或XML编码格式可以还原完全相等的对象。这程序被应用在不同应用程序之间传送对象,以及服务器将对象储存到档案或数据库。相反的过程又称为反序列化。
通过继承接口实现:
- Serializable
- Externlizable
3. transient关键字:
transient修饰的关键字将不会被序列化,静态变量不论是否有transient关键字修饰都不参与序列化。