答:数据库管理系统是一个软件,用来管理数据库;数据库是数据的集合;
答:对数据库影响最大的项目有IBM的System R项目,还有伯克利大学的INGRES项目;
(1)20世纪60年代末,第一个商用DBMS出现;
早期的模型并不是关系模型,而是层次、网状模型,而这些模型也没有类似SQL的高级查询语言;
(2)1970年Ted Codd提出了关系型数据库;
(3)关系模型之后还提出了面向对象模型等;
答:关系数据模型、半结构化数据模型、面向对象模型、层次模型(基于树)、网状模型(基于图);
层次模型和网状模型都是早期的模型,如果要查询,需要对底层的数据直接操作,因此查询效率低;
而关系模型则不需要关心数据的底层存储格式,并且可以通过SQL快速查询;
答:现在无时无刻我们都会和数据库打交道,比如(1)银行(2)航天(3)各种网站(4)企业管理;
答:是;
因为现在GB的数据已经是再正常不过了,所以我们需要了解GB以后的数据容量单位;
TB-->PB-->EB-->ZB-->YB-->DB-->NB;
(1)拥有DDL(数据定义语言),能够创建数据库并定义模式;
(2)拥有查询语言或DML(数据操作语言)提供查询和更新数据;
(3)能够存储大量数据,并且持久性(数据库能够长期存储,比如只要插入了一条数据,这条数据就会一直被保存);
(4)ACID
A原子性:事务要么执行、要么不执行;
C一致性:比如银行转账,需要一致性;
I 隔离性:多个用户同时访问数据库时,像是只有一个用户访问的感觉;
D持久性:存储数据不会丢失;
数据库系统起源于文件系统;
(1)能够存储大量数据;
(2)不能保证持久性(如果不做备份,可能会丢失数据);
(3)不能对数据有效访问,没有专门的查询语言;
(4)不能保证隔离性和原子性(如果多个用户同时修改同一个文件,则只能保留一个用户的更改);
从图中可以看到,一般对DBMS有两类操作:
(1)DBA负责数据库的模式;
(2)DBMS用户查询和更改数据库记录;
当用户输入查询语句并提交时,查询编译器会将查询语句转为查询计划,并交给执行引擎;
查询处理器
查询编译器:将查询语句转为查询计划;
执行引擎:执行查询计划;
事务
一般来说数据库默认为自动提交模式,即每个语句都是一个事务,如果取消该模式,则需要处理并发控制的问题;
并发控制调度器:管理原子性和独立性和一致性;
日志:管理持久性,每个数据库操作都记录在日志上,日志放在磁盘上;
存储管理
缓冲区管理器:管理内存(缓冲区)的存储;
缓冲区被缓冲区管理器管理;
存储器管理器:管理磁盘的数据存储;
缓冲区管理器会向存储器管理器发出请求,让磁盘的某块数据放入内存;
答:是,因为关系表中属性顺序、元组顺序的不同是无所谓的,因此以上两个表示关系的不同表现形式,但是是同一个关系;
答:不能,因为关系数据模型中明确规定属性的类型是基本数据类型;
答:MySQL、DB2、Oracle、SQLite、MS Server;
答:每个DBMS都会提供相应的驱动器,并且Java提供了两种访问数据库的方法:
(1)ODBC-JDBC桥;
(2)JDBC;
答:Not Only SQL;
通常对于Web应用来说,数据库都是放在服务器端,而服务器端一般也分为三层架构: