数据库学习---1

来源:互联网 发布:幼儿 背唐诗 知乎 编辑:程序博客网 时间:2024/06/07 15:43

数据库(DataBase)就是一个存储数据的仓库。为了方便数据的存储和管理,它将数据按照特定的规律存储在磁盘上。通过数据库管理系统,可以有效地组织和管理存储在数据库中的数据。

数据库理论基础
数据库能够将数据按照特定的规律组织起来。
数据库是指长期存储在计算机内、有组织的和可共享的数据集合。简而言之,数据库就是一个存储数据的地方。
表是数据库存储数据的基本单位。一个表由若干字段组成。
数据库和表都存储在磁盘上,但不必关心它们在磁盘上的具体位置。可以直接通过数据库管理系统来查询表中的数据。
现在使用最多的数据库是关系数据库。
Oracle、SQL Server和MySQL等数据库都是关系数据库。
关系数据库中的表都是二维表。
数据库泛型
数据库泛型就是数据库应该遵循的规则。数据库泛型也称为范式。目前,关系数据库最常用的4种范式分别是第一范式(1NF)、第二范式(2NF)、第三范式(3NF)和BCN范式(BCNF)。
在设计数据库时,数据库需要满足的最低要求的范式是第一范式。第一范式的要求即表中不能有重复字段,并且每个字段不能再拆分。如果一个数据库连第一范式都不能满足的话,那就不能称之为关系数据库了。只有满足了第一范式的要求,才可以在这个关系数据库中创建表。
当一个数据库达到第三范式的要求,数据库中基本上没有冗余的内容了。但是,有时为了满足查询速度等要求,可以有意识的让某些表有些冗余。这是为了提高整个数据库的性能。
因此,在设计数据库时,不一定要拘泥于达到第三范式或者BCN范式。只要数据库的设计能提高整个系统的性能,这就是一个合理的数据库。
在软件开发过程中,经常需要使用数据库来存储数据。
数据库技术的出现是为了更加有效地管理和存取大量的数据资源。简单地讲,数据库技术主要包括数据库系统、SQL语言和数据库访问技术等。
数据库系统DBS,数据库系统的范围比数据库大很多。数据库系统不是一个单纯的数据库,而是由数据库、数据库管理系统、应用开发工具等构成。
数据库就是存储数据的地方。
数据库管理系统DBMS是用来定义数据、管理和维护数据的软件。它是数据库系统的一个重要组成部分。应用系统是需要使用数据库的软件,需要数据库来管理它的数据。
应用开发工具就是用来开发应用系统的。
除了上述的软件部分以外,数据库系统还包括数据库管理员(DBA)和用户。

SQL语言
SQL(结构化查询语言)。数据库管理系统通过SQL语言来管理数据库中的数据。
SQL语言是一种数据库查询和程序设计语言。其主要用于存取数据、查询数据、更新数据和管理关系数据库系统。

SQL语言分为3个部分,数据定义语言DDL、数据操作语言DML和数据控制语言DCL.

DDL语句:数据定义语言主要用于定义数据库、表、视图、索引和触发器等。其中包括create语句、alter语句和drop语句。create语句主要用于创建数据库、创建表和创建视图等。alter语句主要用于修改表的定义、修改视图的定义等。drop语句主要用于删除数据库、删除表和删除视图等。
DML语句:数据操纵语言主要用于插入数据、查询数据、更新数据和删除数据。其中包括insert语句、select语句、update语句和delete语句。insert语句用于插入数据;select语句用于查询数据;update语句用于更新数据;delete语句用于删除数据。
DCL语句:数据控制语言主要用于控制用户的访问权限。其中包括grant语句和revoke语句。grant语句用于给用户增加权限;revoke语句用于回收用户的权限。
数据库管理系统通过SQL语句操作数据库中的数据。在应用程序中,也可以通过SQL语句来操作数据。例如,可以在Java语言中嵌入SQL语句。通过执行Java语言来调用SQL语句。
数据库访问技术
应用系统中,程序语言需要使用数据库访问技术来访问数据库。只有使用数据库访问技术,程序中嵌入的SQL语句才会起作用。
早期的数据库访问技术是ODBC(Open Database Connectivity)。
Java语言使用JDBC(Java Data Base Connectivity)来访问数据库。需要安装相应的驱动程序。
ODBC技术为访问不同的关系数据库提供了一个共同的接口。通过ODBC提供的接口,应用程序可以连接数据库。然后,可以执行SQL语言来操作数据库中的数据。ODBC提供的接口提供了最大限度的互操作性。使用ODBC来访问MySQL数据库时,必须安装驱动程序Connector/ODBC.
JDBC是一种用于执行SQL语句的Java API。Java语言通过JDBC可以访问多种关系数据库。JDBC由一组用Java语言编写的类和接口组成。使用JDBC时,必须要安装驱动程序Connector/J。