数据库应用系统
是应用软件开发过程中最为常见的一种系统
client/server(cs架构)
数据库应用程序(client)——计算机网络——数据库系统(database system)
数据库系统提供数据是服务器端
数据库应用程序使用数据是客户端
数据库系统
文件,数据库系统DBS。用来存储,管理,为他人提供数据服务的系统
为了科学高效地管理数据,数据库系统首先需要建立数据模型,然后依据模型对数据进行集中存储,规范管理。数据库就是按照某种特定数据模型来组织,存储和管理数据的仓库
目前最常用的数据模型是关系模型,或称实体关系模型,按照关系模型所建立的数据库被称为关系型数据库
数据库应用程序
数据库系统对外提供数据库访问服务,用户访问数据库系统,其目的是操作数据库中的数据。常见的数据库操作有增删改查(create delete update read)
用户需要通过数据库应用程序才能访问数据库系统,操作数据库中的数据
数据库系统的基本原理
数据库系统的基本组成:
主机(Host) 数据库系统需要存储和管理大量数据,因此服务器主机首先应当配备大容量存储设备,例如read。数据库系统还需对外提供数据库访问服务,因此服务器主机应当具有一定的网络带宽,并选用性能较高的服务器硬件
数据库管理系统(DBMS) 他是一种专门用于定义,操作,存储和管理数据的软件系统,是数据库系统的核心,DBMS通常与操作系统,编译系统一起称为系统软件,它不是应用软件,数据库系统通过DBMS对外提供数据库访问服务,访问数据库系统必须通过DBMS。从外部看,DBMS是一个专门提供数据服务的服务器程序。与DBMS建立数据库连接的客户端程序有两类,一类是DBMD自身提供的管理工具软件,另一类是由程序员开发的数据库应用程序。管理工具软件,这是DBMS为数据库管理员或程序员提供的客户端程序,可以直接与DBMS建立连接,访问数据库系统。管理工具软件主要用于设置,维护,测试数据库系统。而数据库应用程序这是由程序员开发的DBMS客户端程序,数据库应用程序必须通过特殊的应用程序编程接口才能与DBMS建立连接,访问数据库系统,这些应用编程接口可以称为数据库的API。常用的数据库API有JDBCAPI,ODBCAPI。数据库应用程序是提供给用户使用的,用户通过数据库应用程序来访问数据库中的数据
数据库(具体存放数据的仓库,管理工具) 在一个数据库系统中可以有多个数据库来存放不同的数据,一个数据库通常对应磁盘上的一个文件或者多个文件,或者是一个目录,这个目录里可能包含多个文件,例如数据文件,控制文件,日志文件等。一个数据库管理系统DBMS可以创建并管理多个数据库,例如大学有教务管理信息,后勤管理信息和科研项目管理信息等等,有多个不同的数据库。可以使用用一个DBMS对他们进行管理
管理工具软件(Tools) 管理工具是数据库系统DBMS配套提供的一种工具软件,其功能主要包括创建,查询数据库,数据库备份,账户管理等。数据库管理员使用管理工具软件来设置,维护数据系统,程序员也可以使用管理工具软件来测试数据库系统,调试程序。大型计算机系统通常都使用独立的系统来专门存储和管理数据
数据库系统还要配备数据库管理员(DBA),专门负责系统日常运行和维护工作
与DBA相关的人员一个是用户,不能直接访问数据库系统,必须通过数据库应用程序才能访问数据库中的数据。用户具有不同的角色和访问权限。例如在大学教务管理系统中,教务人员负责信息的录入,修改和删除,也可以查看大部分教务数据,而教师学生则只能查看自己的个人信息或者课程信息
另外一个就是程序员,程序员主要负责数据库应用程序的开发,这就是数据库编程
第三数据库设计人员,数据库设计一般由经验丰富的资深软件开发人员担任,主要负责数据库系统的需求分析,数据模型设计和系统方案设计等
数据库系统的特点
数据冗余少。数据库系统通过集中管理,网络共享,范式设计和重复消除等手段,尽可能减少数据冗余
数据正确可靠。数据库系统通过制定完整行约束条件对数据进行检查。只有满足约束的数据才能存入数据库,这样可以保证所有存放在数据库中的数据都是正确,可靠的
具有授权访问控制。数据库系统具有完善的访问控制机制,这样可以保证数据安全,防止信息泄露。访问数据库系统,只有被授权的用户才能访问。通过权限设置,可以控制用户只能访问数据库的部分数据,即只能访问应当访问的数据。
提供数据库访问服务,数据库系统以网络服务的形式对外提供数据库访问服务,其客户端程序有两类,一类是DBMS自身提供的管理工具软件,一类是由程序员开发的数据库应用程序
关系型数据库
关系型数据库是按照关系模型来描述和存储客观世界中的实体以及实体间关系的数据库系统。例如在大学教务管理系统中,学生就是一个实体,课程也是一个实体,学生实体与课程实体之间存在选修关系,就是某位学生选修了某一门课程
关系模型
看起来就像是一个由行(row)列(column)组成的二维表格,表格的每一行被称为一条记录(record)一条记录包括多个数据项,每个数据项被称为一个字段(field)同一表格中的记录都具有相同的字段结构。表格中有一个标明字段名称(即列的名称)的表头,它被称为二维表格的表结构(table structure)
描述和存储实体的表格
表(table),或数据表(data table),数据表中的所有记录都有相同的字段结构,他们是属于同一实体类型的数据集合。例如学生表就是学生信息的数据集合,课程表就是课程信息的集合,数据表通过表结构来描述实体类型包含了哪些字段,以及各个字段的名称,数据类型和长度等信息。关系模型要求数据表中不能有重复的记录。
用于区分不同记录的字段(一个或多个)称为主键(Primary Key简称PK)。例如学生表student可以将学号作为主键,不同学生可能会有重名,但学号必须是唯一的。同样,课程表course也可以将课程号作为主键。主键可以唯一确定数据表中的一条记录
描述和存储实体间关系的表格。例如学生实体和课程实体存在选修关系,某一位同学选修了某一门课程,可以使用学号,课程号还有成绩来描述学生选修了哪门课程以及这门课程的成绩,这就是一个选修关系表命名为election。这张关系表需要通过学号和课程号两个字段才能区分不能的选课记录,这两个字段合在一起,就是选修关系的主键,同时学号还是学生表的主键,课程号也是课程表的主键,因此这两个字段也被称作是外键,就是他们是别的数据表的主键
关系模型的优点:
(1)易于理解,易于实现。利用二维表描述和存储数据,简单直观
(2)具有坚实的理论基础,具有一整套基于范式的设计方法和基于集合的关系运算规则,有了这些方法与规则的指导,关系模型的设计工作就有章可寻。
关系型数据库
关系型数据库就是按照关系模型建立起来的数据库。一个关系数据库系统的核心是其中关系型数据库管理系统(Rational DBMS,简称RDBMS)软件
RDBMS类比Excel
数据库类似于工作簿。RDBMS软件可以创建多个数据库,这就类似电子表格Excel可以创建多个工作簿
数据表类似于工作表。一个Excel工作簿对应硬盘上的一个文件,其扩展名为.xls或.xlsx,每个工作簿里面可以包含多张工作表。同样一个数据库也是对应磁盘上的一个文件,或一个目录下的多个文件,它其中也可以包含多张数据表。都是由行和列组成的二维表格,所不同的是数据库中的数据表必须首先定义表结构,指定各字段的名称,数据类型和长度等属性,同时还需要标明哪些字段是主键,然后才能输入数据。RDBMD对数据表有严格要求Excel对工作表则没有特别要求。用户可以直接通过Excel软件操作电子表格,但是在数据库系统中,用户只能通过配套的数据库管理工具和应用程序来间接操作数据库
关系型数据管理系统RDBMS为应用程序操作数据库设计了一种专门的计算机语言,这就是结构化查询语言SQL(Structured Query Language)。常见的数据库操作有创建或删除数据库,创建或删除数据表,向表中插入新纪录,或者是查询数据表中的记录,也可以修改或删除记录,这些都是常见的数据库操作
常用的关系型数据库管理系统
Oracle,SQLServe,MySQL,Access,Java DB
结构化查询语言SQL
一.常用操作
1.创建或删除数据库
2.在数据库中创建或删除数据表
3.在数据表中插入,修改,删除或查询记录等
创建或删除数据库
create Database database_name
drop Database database_name
创建数据表
create table table_name(
field_name1 data_type1(size),
field_name2 data_type2(size),
field_name3 data_type3(size),
…
)
定义各字段的名称,数据类型,长度,以及是否主键等
SQL语言中有五大数据类型:
字符型(char,varchar)
数值型(int,numeric)
逻辑型(bit)
日期型(date,time)
变长型(blob,memo)
例子
create table student(
sNo char(10) Primary Key,sName char(10),college varchar(20),class Varchar(20)
)
删除数据表
drop table table_name
插入记录
insert into table_name values(value1 ,value2,value3,…)
例如
insert into student values('20180001','张同学','信息学院','计科181')
查询记录
select * from table_name
select field_name1,field_name2,…from table_name
select field_name1,field_name2,…from table_name where condition
例如select * from student where sNo='20180001'
修改记录
update table_name
set field_name1=value1,field_name2=value2,…where condition
例如
update student
set class='计科182'
where sNo='20180001'
删除记录
delete from table_name
where condition
例如
delete from student
where sNo='20180001'