目录
1.1 一个简单的数据库应用系统
1.2 数据库设计
1.2.1 E-R模型
1.2.2逻辑数据模型
1.3 数据库应用系统
1.3.1应用系统的数据接口
1.3.2应用系统架构
首页 数据库 SQL SQL server速成基础之数据库应用系统

SQL server速成基础之数据库应用系统

Apr 26, 2022 pm 06:12 PM
sql

本篇文章给大家带来了关于SQL server的相关知识,其中主要介绍了关于数据库基础的相关问题,包括了简单的数据库应用系统、数据库设计的介绍,下面一起来看一下,希望对大家有帮助。

SQL server速成基础之数据库应用系统

推荐学习:《SQL教程

数据库概念

  • 数据库
    把按一定模型组织的数据称为数据库(DataBase, DB)。数据库是
    事务处理,信息管理等应用系统等核心和基础。

  • 数据库管理系统(DataBase Management System, DBMS)
    管理数据库等系统,它将大量的数据按一定的数据模型组织起来,提
    供存储、维护、检索数据的功能,使应用系统可以以统一的方式方便、
    及时、准确地从数据库中获取所需信息。

  有人可能会问:我的数据就存放在自己电脑的excel表里就可以了,为什么还要搞个数据库呢

  那是这是因为数据库比excel有更多的优势。数据库可以存放大量的数据,允许很多人同时使用里面的数据。举个例子你就明白了,excel好比是一个移动硬盘,你使用了这个移动硬盘其他人就用不了了。数据库好比是网盘,很多人可以同时访问里面里的数据,而且网盘比移动硬盘能放更多的数据。
在这里插入图片描述

1.1 一个简单的数据库应用系统

数据库如何组织(存放)数据?

  在项目开发时,必须选择一个合适的数据库管理系统将数据按一定数据模型组织起来,并对数据进行统一管理,为需要使用数据的应用程序提供一致的访问手段。数据模型主要包括关系模型、层次模型、网状模型。目前,关系模型较为常用。

  关系模型以二维表格(关系表)的形式组织数据库中的数据。例如:表1.1描述了某一时刻学生图书借阅系统中的学生数据.
在这里插入图片描述

在这里插入图片描述

  1. 表格中的一行称为记录,一列称为一个字段,标题为字段名。
  1. 关系表结构表示形式:关系表名(字段名1,字段名2…字段
    名n)
  1. 码:一个字段或字段最小组合的值可以唯一标识其对应记录。一个
    表中可以有多个码,一般指定一个码为主码,在关系表中用下划线表
    示。如,学生表xs(借书证号,姓名,性别,出生时间,专业,借书
    量)。

1.2 数据库设计

表之间的关系:

学生表

在这里插入图片描述

成绩表

在这里插入图片描述

  例如我想知道学生表里学号“0001” 的成绩是多少?那么我就可以在成绩表里去查找“学号”值是0001的行,最后在成绩表里发现有3行数据的学号都是“0001” ,对应的就找到了该学生的三门课程的成绩。关系就是数据能够对应的匹配。

1.2.1 E-R模型

  E-R模型用来表示实体集与实体集之间的联系的图称为实体(entity)-联系 (relationship)模型( E-R图)。

  通常,E-R模型把每一类数据对象的个体称为“实体”,而每一类对象个体的 集合称为“实体集”,例如,在图书管理系统中主要涉及“读者”(又称为学生)和 “图书”等实体集,非主要实体集还有班级、班主任等。把每个实体集涉及的信息项称为属性。

  (1)实体集表示 在E-R图中,使用矩形表示实体集,使用椭圆表示属性,使用菱形表示联 系。用线段连接实体集与属性,当一个属性或属性组合指定为主码时,在实体集与属性的连接线上标记一斜线。
在这里插入图片描述
在这里插入图片描述

(2)实体集之间存在各种关系
  1.一对一的联系(1 : 1) A中的一个实体至多与B中的一个实体相联系,B中的一个实体也至多与A中的一个实体相联系。例如,“班级”与“班主任”这两个实体集之间的联系是一对一的联系,因为一个班级只有一个班主任,反过来,一个班主任只属于一个班级。“班级”与“班主任”两个实体集的E-R模型如图1.2所示。
在这里插入图片描述
  2.一对多的联系(1 : n) A中的一个实体可以与B中的多个实体相联系,而B中的一个实体至多与A中的一个实体相联系。例如,“班级”与“学生”(读者)这两个实体集之间的联系是一对多的联系,因为一个班级可有若干学生,反过来,一个学生只能属于一个班级。“班级”与“学生”两个实体集的E-R模型如图1.3所示。
图1-2
  3.多对多的联系(m : n) A中的一个实体可以与B中的多个实体相联系,而B中的一个实体也可与A中的多个实体相联系。例如,“读者”(学生)与“图书”这两个实体集之间的联系是多对多的联系,因为一个读者可借多本图书,反过来,一个书号的图书可被多个学生借。“读者”与“图书”两个实体集的E-R模型如图1.4所示。
在这里插入图片描述

练习1

  设有商店和顾客两个实体,“商店”有属性:商店编号、商店名、地址、电 话,“顾客”有属性:顾客编号、姓名、地址、年龄、性别。假设顾客每次去商店购物有一个消费金额和日期。试画出E-R图,并注明属性和联系类型。
在这里插入图片描述

==练习2==

  假设每个学生选修若干门课程,且每个学生每选一门课只有一个成绩,每个教师只担任 一门课的教学,一门课由若干教师任教。“学生”有属性:学号、姓名、地址、年龄、性别。“教师”有属性:职工号、教师姓名、职称,“课程“有属性:课程号、课程名。 试画出ER图,并注明属性和联系类型。

在这里插入图片描述

1.2.2逻辑数据模型

  下面将根据三种联系从E-R图获得关系模式的方法。

  1.(1 : 1)联系的E-R图到关系模式的转换
   a. 每个实体集各对应一个关系模式;
   b. 对于(1 : 1)的联系,既可单独对应一个关系模式,也可以不单独对应一个关系模式。
  (1)联系单独对应一个关系模式,则由联系属性、参与联系的各实体集的主码属性构成关系模式,其主码可选参与联系的实体集的任一方的主码。
  例如,考虑图1.2描述的“班级(bj)”与“班主任(bzr)”实体集通过属于(sy)联系E-R模型,可设计如下关系模式(下横线表示该字段为主码):
bj(班级编号,院系,专业,人数)
bzr(员工号,姓名,联系电话)
sy(员工号,班级编号)
  (2)联系不单独对应一个关系模式,联系的属性及一方的主码加入另一方实体集对应的关系模式中。
  例如,考虑图1.2描述的“班级(bj)”与“班主任(bzb)”实体集通过属于(sy)联系E-R模型,可设计如下关系模式:
bj(班级编号,院系,专业,人数)
bzr(员工号,姓名,联系电话,班级编号)
或者:
bj(班级编号,院系,专业,人数,员工号)
bzr(员工号,姓名,联系电话)

  2.(1 : n)联系的E-R图到关系模式的转换
  a. 每个实体集各对应一个关系模式;
  b. 对于(1 : n)的联系,既可单独对应一个关系模式,也可以不单独对应一个
关系模式。
  (1)联系单独对应一个关系模式,则由联系的属性、参与联系的各实体集的 主码属性构成关系模式,n端的主码作为该关系模式的主码。
  例如,考虑图1.3描述的“班级(bj)”与“学生(xs)”实体集E-R模型,可设计如下关系模式:
bj(班级编号,院系,专业,人数)
xs(借书证号,姓名,性别,出生时间,专业,借书量)
sy(借书证号,班级编号)
  (2)联系不单独对应一个关系模式,则将联系的属性及1端的主码加入n端实
体集对应的关系模式中,主码仍为n端的主码。
  例如,图1.3描述的“班级(bj)”与“读者(xs)”实体集E-R模型可设计如下关系模式:
bj(班级编号,院系,专业,人数)
xs(借书证号,姓名,性别,出生时间,专业,借书量,班级编号)

  3.(m : n)联系的E-R图到关系模式的转换
  a. 每个实体集各对应一个关系模式;
  b. 对于(m : n)的联系,单独对应一个关系模式,该关系模式包括联系的属性、参与联系的各实体集的主码属性,该关系模式的主码由各实体集的主码属性共同组成。
  例如,图1.4描述的“读者(xs)”与“图书(book)”实体集之间的借阅联
系(jy)可设计如下关系模式:
xs(借书证号,姓名,性别,出生时间,专业,借书量)
book(ISBN,书名,作译者,出版社,价格,复本量,库存量,内容提要)
jy(借书证号,ISBN,索书号,借阅时间)
关系模式jy的主码是由“借书证号”和“ISBN”两个属性组合起来构成的一
个主码,一个关系模式只能有一个主码。

  练习1:设有商店和顾客两个实体,“商店”有属性:商店编号、商店名、地址、电 话,“顾客”有属性:顾客编号、姓名、地址、年龄、性别。假设顾客每次去商店购物有一个消费金额和日期。绘制E-R图,并转换成关系模型。

在这里插入图片描述

  练习2:假设每个学生选修若干门课程,且每个学生每选一门课只有一个成绩,每个教师只担任 一门课的教学,一门课由若干教师任教。“学生”有属性:学号、姓名、地址、年龄、性别。 “教师”有属性:职工号、教师姓名、职称,“课程”有属性:课程号、课程名。 试画出ER图,并将E-R图转换成关系模型。

在这里插入图片描述

1.3 数据库应用系统

  如图1.5所示描述了数据库系统的构成。
在这里插入图片描述

1.3.1应用系统的数据接口

1.ODBC数据库接口
  ODBC即开放式数据库互连(Open DataBase Connectivity),是微软公司推出的一种实现应用程序和关系数据库之间通信的接口标准。符合该标准的数据库就可以通过SQL语句编写的程序对数据库进行操作,但只针对关系数据库。目前所有的关系数据库都符合该标准。ODBC本质上是一组数据库访问API(应用程序编程接口),由一组函数调用组成,核心是SQL语句。

2.ADO数据库接口
  ADO(ActiveX Data Object)是微软公司开发的基于COM的数据库应用程序接口,通过ADO连接数据库,可以灵活地操作数据库中的数据。使用ADO访问关系数据库有两种途径:一种是通过ODBC驱动程序,另一种是通过数据库专用的OLE DB Provider,后者有更高的访问效率。

3.ADO.NET数据库接口
  ADO.NET数据模型从ADO发展而来,但它不只是对 ADO的改进,而是采用
了一种全新的技术。主要体现在以下几个方面:
(1)ADO.NET不是采用ActiveX技术,而是与.NET框架紧密结合的产物。
(2)ADO.NET包含对XML标准的完全支持,这对于跨平台交换数据具有重 要意义。
(3)ADO.NET既能在与数据源连接的环境下工作,又能在断开与数据源连接的条件下工作。特别是后者,非常适合于网络应用的需要,因为在网络环境下,始终做到保持与数据源连接,不符合网站的要求,不仅效率低,付出代价高,而且常会引发由于多个用户同时访问而带来的冲突。

  ADO.NET 提供了面向对象的数据库视图,并且在其对象中封装了许多数据库属性和关系。最重要的是,它通过多种方式封装和隐藏了很多数据库访问的细 节。可以完全不知道对象在与ADO.NET对象交互,也不用担心数据移动到另外一个数据库或者从另一个数据库获得数据等细节问题。图1.6显示了通过ADO.NET访问数据库的接口模型。

在这里插入图片描述

4.JDBC数据库接口
  JDBC(Java DataBase Connectivity)是JavaSoft (原来SUN公司的业务部门)开发的,Java语言编写的用于数据库连接和操作的类和接口,可为多种关系数据库提供统一的访问方式。通过JDBC对数据库的访问包括4个主要组件:Java应用程序、JDBC驱动器管理器、驱动器和数据源。
使用JDBC接口操作数据库有如下优点:
(1)JDBC API与ODBC十分相似,有利于用户理解;
(2)使编程人员从复杂的驱动器调用命令和函数中解脱出来,而致力于应用
程序功能的实现;
(3)JDBC支持不同的关系数据库,增强了程序的可移植性。

5.数据库连接池技术
  对于网络环境下的数据库应用,由于用户众多,使用传统的JDBC方式进行数据库连接,系统资源开销过大成为制约大型企业级应用效率的瓶颈,采用数据库连 接池技术对数据库连接进行管理,可以大大提高系统的效率和稳定性。

1.3.2应用系统架构

  1. 客户/服务器架构的应用系统
  DBMS通过命令和适合专业人员的界面操作数据库。对于一般的数据库应用系统,除了DBMS外,还需要设计适合普通人员操作数据库的界面。目前,流行的开发数据库界面的工具主要有Visual Basic、Visual C++、Visual C#等。应用程序与数据库、数据库管理系统之间的关系如图所示。

在这里插入图片描述

  2. 浏览器/服务器架构的应用系统
  基于Web的数据库应用采用三层(浏览器/Web服务器/数据库服务器)模式,也称B/S架构,如图所示。
在这里插入图片描述

推荐学习:《SQL教程

以上是SQL server速成基础之数据库应用系统的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

Hibernate 框架中 HQL 和 SQL 的区别是什么? Hibernate 框架中 HQL 和 SQL 的区别是什么? Apr 17, 2024 pm 02:57 PM

HQL和SQL在Hibernate框架中进行比较:HQL(1.面向对象语法,2.数据库无关的查询,3.类型安全),而SQL直接操作数据库(1.与数据库无关的标准,2.可执行复杂查询和数据操作)。

Oracle SQL中除法运算的用法 Oracle SQL中除法运算的用法 Mar 10, 2024 pm 03:06 PM

《OracleSQL中除法运算的用法》在OracleSQL中,除法运算是常见的数学运算之一。在数据查询和处理过程中,除法运算可以帮助我们计算字段之间的比例或者得出特定数值的逻辑关系。本文将介绍OracleSQL中除法运算的用法,并提供具体的代码示例。一、OracleSQL中除法运算的两种方式在OracleSQL中,除法运算可以使用两种不同的方式进行

Oracle和DB2的SQL语法比较与区别 Oracle和DB2的SQL语法比较与区别 Mar 11, 2024 pm 12:09 PM

Oracle和DB2是两个常用的关系型数据库管理系统,它们都有自己独特的SQL语法和特点。本文将针对Oracle和DB2的SQL语法进行比较与区别,并提供具体的代码示例。数据库连接在Oracle中,使用以下语句连接数据库:CONNECTusername/password@database而在DB2中,连接数据库的语句如下:CONNECTTOdataba

详解MyBatis动态SQL标签中的Set标签功能 详解MyBatis动态SQL标签中的Set标签功能 Feb 26, 2024 pm 07:48 PM

MyBatis动态SQL标签解读:Set标签用法详解MyBatis是一个优秀的持久层框架,它提供了丰富的动态SQL标签,可以灵活地构建数据库操作语句。其中,Set标签是用于生成UPDATE语句中SET子句的标签,在更新操作中非常常用。本文将详细解读MyBatis中Set标签的用法,以及通过具体的代码示例来演示其功能。什么是Set标签Set标签用于MyBati

SQL中的identity属性是什么意思? SQL中的identity属性是什么意思? Feb 19, 2024 am 11:24 AM

SQL中的Identity是什么,需要具体代码示例在SQL中,Identity是一种用于生成自增数字的特殊数据类型,它常用于唯一标识表中的每一行数据。Identity列通常与主键列配合使用,可以确保每条记录都有一个独一无二的标识符。本文将详细介绍Identity的使用方式以及一些实际的代码示例。Identity的基本使用方式在创建表时,可以使用Identit

Springboot+Mybatis-plus不使用SQL语句进行多表添加怎么实现 Springboot+Mybatis-plus不使用SQL语句进行多表添加怎么实现 Jun 02, 2023 am 11:07 AM

在Springboot+Mybatis-plus不使用SQL语句进行多表添加操作我所遇到的问题准备工作在测试环境下模拟思维分解一下:创建出一个带有参数的BrandDTO对象模拟对后台传递参数我所遇到的问题我们都知道,在我们使用Mybatis-plus中进行多表操作是极其困难的,如果你不使用Mybatis-plus-join这一类的工具,你只能去配置对应的Mapper.xml文件,配置又臭又长的ResultMap,然后再去写对应的sql语句,这种方法虽然看上去很麻烦,但具有很高的灵活性,可以让我们

SQL出现5120错误怎么解决 SQL出现5120错误怎么解决 Mar 06, 2024 pm 04:33 PM

解决办法:1、检查登录用户是否具有足够的权限来访问或操作该数据库,确保该用户具有正确的权限;2、检查SQL Server服务的帐户是否具有访问指定文件或文件夹的权限,确保该帐户具有足够的权限来读取和写入该文件或文件夹;3、检查指定的数据库文件是否已被其他进程打开或锁定,尝试关闭或释放该文件,并重新运行查询;4、尝试以管理员身份运行Management Studio等等。

如何使用SQL语句在MySQL中进行数据聚合和统计? 如何使用SQL语句在MySQL中进行数据聚合和统计? Dec 17, 2023 am 08:41 AM

如何使用SQL语句在MySQL中进行数据聚合和统计?在进行数据分析和统计时,数据聚合和统计是非常重要的步骤。MySQL作为一个功能强大的关系型数据库管理系统,提供了丰富的聚合和统计函数,可以很方便地进行数据聚合和统计操作。本文将介绍使用SQL语句在MySQL中进行数据聚合和统计的方法,并提供具体的代码示例。一、使用COUNT函数进行计数COUNT函数是最常用

See all articles