代码改变世界

第一章 数据库引论

2016-06-15 15:31  小米加汉堡  阅读(164)  评论(0)    收藏  举报

数据库访问

    方法1:使用交互工具

                Mysql    Workbench 

                SQL Server  查询分析器       

                Oracle    SQL*Plus,Work Sheet

    方法2:使用开发工具设计界面、处理数据,调用ODBC等接口访问数据库,如ASP,JSP,VC++,PHP,PowerBuilder, Delphi

 

DBMS 数据库管理系统

    特性:1、数据访问的高效和可扩展性

               2、缩短应用开发时间

               3、数据独立性(物理独立性和逻辑独立性)

               4、数据的完整性和安全性

               5、并发访问和鲁棒性(robustness恢复)

    DBMS发展历程:文件系统->网状数据模型、层次数据模型->关系型数据库系统(RDBMS Relational database systems)

                                面向对象的数据库管理系统(OODBMS Object-oriented database systems)->对象关系数据库系统(ORDBMS Object-relational database systems)

                                面向应用数据库系统(Application-oriented database systems)-》

                                数据仓库(Data Warehousing)、联机分析处理(Online Analytical Processing)、数据挖掘(Data mining)

    开源数据库:Mysql  postgreSQL

数据抽象

        物理层:描述数据是怎样存储的

        逻辑层:描述数据库中存储什么数据,以及数据间存在什么关系

        视图层:应用程序能够隐藏数据类型的详细信息,出于安全的目的隐藏数据信息。

      数据抽象的三层结构:               

             

 

实例和模式

    类似于编程语言中的类型(type)和变量(variables)

        实例->变量  模式->类型

    实例(instance):特定时刻存储在数据库中的信息的集合

    模式(Schema):数据库的总体设计

        物理模式

        逻辑模式

    数据库系统的模式结构:

  

        

物理独立性和逻辑独立性

      物理独立性:修改物理结构而不需要改变逻辑结构的能力。

            应用程序依赖于逻辑结构

            应用程序独立于数据的结构和存储

      逻辑独立性:数据逻辑结构的改变不影响应用程序

            逻辑独立性一般很难实现,因为应用程序严重依赖于数据的逻辑结构。    

    

数据模型

        数据模型是一个概念工具的集合,用于描述数据结构,数据关系,数据约束,数据语义

        

数据库的设计过程

        1、需求设计

                需要什么样的数据、应用程序和业务

        2、概念数据库设计

                使用E-R模型

        3、逻辑数据库设计

                将概念设计转化为某个DBMS支持的数据模型

        4、结构优化

                关系标准化,检查冗余和异常关系结构

        5、物理数据库设计

                索引、集群和数据库调优

        6、创建并初始化数据库&安全设计

          

 

实体 - 联系模型

            E-R (Entity - Relationship)模型

            E-R模型将数据库设计转化为关系模型的设计。

            

数据库语言

        DDL(Data Definition Language) 数据库定义语言

        DML(Data Manipulation Language)数据库操纵语言

        DCL(Daya Control Language)数据库控制语言              

    

        数据定义语言(DDL)

            指定一个数据库模式作为一组关系模式的定义

            指定存储结构、访问方法和一致性约束

            DDL语句经过编译,得到一组存储在特殊文件中的表,特殊文件即数字字典(Data dictionnary),其中包括元数据(metadata) 

            数据字典包括:①数据库模式

                                     ②数据存储结构

                                     ③访问方法和约束

                                     ④统计信息

                                     ⑤授权    

        数据操纵语言(DML)

            从数据库中检索语言

            插入/删除/更新语言

            DML也称为查询语言

            过程化DML

                要求用户指定需要什么数据,以及如何获得这些数据(C、Pascal、Java...)

            声明式DML

                只要求用户需要什么数据,不指明如何获取数据(SQL,Prolog)

    

  SQL(Structured Query Language 结构化查询语言)

        SQL=DDL + DML + DCL

        

    

        SQL是使用最广泛的语言,有三种用法:

          ①直接在交互环境中使用

              SQL Server查询分析器

              Oracle:SQL*Plus、Work Sheet

              MySQL:命令行客户端

          ②在宿主语言中,通过ODBC(开放式数据库连接),JDBC使用

          ③在宿主语言中使用嵌入式SQL

 

事务管理

        事务:数据库应用中完成单一逻辑功能的操作集合

        事务的要求:atomicity(原子性)、Consistence(一致性)、Isolation(隔离性)、Durability(持久性)

        事务管理组件:确保系统在出现故障或事务失败的情况下,数据库都能保持一致性。

        并发控制管理器 :控制并发事务之间的交互

 

数据库体系结构

        存储管理器

            在底层数据存储与应用程序及查询之间,提供接口;

            对数据库中的数据进行高效存储,检索与更新;

        查询处理器

            接收数据库语言输入,经过解析、优化、执行,输出相应结果给用户

            包括:解析和翻译、优化、执行