关系数据库——基础

数据库系统概论

四个基本概念

数据:数据库中存储的基本对象,描述一个事物的符号记录,数据和其语义不可分开说

数据库(DB):是长期储存在计算机内、有组织的、可共享的大量数据的集合。

数据库管理系统:一个管理数据的软件

主要功能:

数据定义功能:

(1)提供数据定义语言(DDL):创建表(CREATE),修改表(ALTER),删除表(DROP);

(2)定义数据库中的数据对象

操纵功能:

提供数据操纵语言(DML,即增删改查的操作),实现对数据库的基本操作 (查询、插入、删除和修改)

事务管理和运行管理:

数据库由DBMS统一管理和控制保证数据的安全,完整性、多用户对数据的并发使用、发生故障后的系统恢复

建立和维护功能:(1)数据库初始数据装载转换;(2)数据库转储;(3)介质故障恢复;(4)数据库的重组织;(5)性能监视分析等

数据库系统:由数据库、数据库管理系统应用程序和数据库管理员(DBA)等组成的存储、管理、处理和维护数据的系统。

数据模型

两类数据模型

  1. 概念模型:第一次抽象,用于数据库设计

  2. 逻辑模型和物理模型:第二次抽象

    1)逻辑模型主要包括网状模型、层次模型、关系模型、面向对象模型等,按计算机系统的观点对数据建模,用于DBMS实现

    2)物理模型是对数据最底层的抽象,描述数据在系统内部的表示方式和存取方法,在磁盘或磁带上的存储方式和存取方法

数据模型的组成要素

  1. 数据结构

    1)描述数据库的组成对象,以及对象之间的联系

    2)描述与数据之间联系有关的对象

    3)是对系统静态特性的描述

    4)分类:(1)非关系型:网状,层次;(2)关系型;(3)面向对象型

  2. 数据操作

    1)对数据库中各种对象(型)的实例(值)允许执行的操作及有关的操作规则

    2)增删改查

    3)是对系统动态特性的描述

  3. 数据的完整性约束条件

    1)一组完整性规则的集合

    2)完整性规则:给定的数据模型中数据及其联系所具有的制约和储存规则

    3)用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容

  4. 实体完整性:具体的数据的属性信息是否完整

    参照完整性:该属性对应的值存在

    用户定义完整性:看心情

关系模型

  1. 基本概念:

    1)关系(Relation):一个关系对应通常说的一张表

    2)元组(Tuple):表中的一行即为一个元组

    3)属性(Attribute):表中的一列即为一个属性,给每一个属性起一个名称即属性名

    4)码(Key) :唯一确定一个元组的属性或属性组

    5)域(Domain) :是一组具有相同数据类型的值的集合

    6)分量:元组中的一个属性值

    7)关系模式:对关系的描述,一般表示为

    ​ 关系名(属性1,属性2,……,属性n)

    学生(学号,姓名,年龄,性别,系,年级)

    8)注意规范:不能出现大表套小表。

  2. 数据操作:增删改查,对若干元组操作的集合

  3. 数据的完整性约束条件:

    1)实体完整性

    2)参照完整性

    3)用户定义完整性

数据库系统结构

数据库系统模式的概念

  1. 型:对某一类数据的结构和属性的说明,(学号,姓名,性别,系别,年龄,籍贯)
  2. 值:是型的一个具体赋值,(201315130,李明,男,计算机,19,江苏)
  3. 模式:数据库逻辑结构和特征的描述,是型的描述,反映的是数据的结构及其联系,模式是相对稳定的,即属性名的集合
  4. 实例:模式的一个具体值,反映数据库某一时刻的状态,同一个模式可以有很多实例,实例随数据库中的数据的更新而变动
  5. 如果是一个成绩单:那么科目那一行表示的是模式(不仅仅只是这些,还包括其他的信息),每一个人的成绩一行表示的是一个实例

数据库系统的三级模式结构

  1. 模式:数据库中全体数据的逻辑结构和特征的描述,所有用户的公共数据视图,综合了所有用户的需求,一个数据库只有一个模式,模式是相对稳定的,但是实体是相对变动的

    地位:1)是数据库系统模式结构的中间层;2)与数据的物理存储细节和硬件环境无关;3)与具体的应用程序、开发工具及高级程序设计语言无关

    定义:1)数据的逻辑结构(数据项的名字、类型、取值范围等);2)数据之间的联系;3)数据有关的安全性、完整性要求

  2. 外模式:模式的子集,一个数据库可以有多个,是数据库中局部数据的逻辑结构和特征的描述

  3. 内模式:1)是数据物理结构和存储方式的描述;2)是数据在数据库内部的表示方式

    一个数据库只有一个内模式。

数据库的二级映像功能与数据的独立性

  1. 外模式/模式映像:保证了数据的逻辑独立性。不唯一

    1)当模式改变时,数据库管理员修改有关的外模式/模式映象,使外模式保持不变

    2)应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。

  2. 模式/内模式映像:保证了数据的物理独立性。唯一

    1)当数据库的存储结构改变了(例如选用了另一种存储结构),数据库管理员修改模式/内模式映象,使模式保持不变,进而外模式也不发生改变

    2)应用程序不受影响。保证了数据与程序的物理独立性,简称数据的物理独立性

  3. 数据的存取由DBMS管理的好处:

    1)用户不必考虑存取路径等细节

    2)简化了应用程序的编制

    3)大大减少了应用程序的维护和修改

 

数据库系统的组成

硬件,操作系统,数据库设计人员,数据库管理人员,数据库管理系统,用户等等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/445130.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python(27)-模块

模块、包1.模块导入的方式2.使用as给模块取一个别名(大驼峰命名法)3.从模块中导入部分工具4.从模块中导入全部工具5.模块搜索顺序6__name__7.包8.发布模块、安装模块、卸载包9.pip安装第三方模块本系列博文来自学习《Python基础视频教程》笔记整理&#…

如何使用docker配置深度学习开发环境

文章目录1.底层驱动的安装1.1 操作系统的安装1.2 显卡驱动的安装1.3 cuda的安装2.使用docker配置深度学习开发环境2.1 docker的安装2.2 nvidia_docker的安装2.3 安装过程中的问题2.3.1 docker和nvidia_docker的版本不匹配的问题。2.3.2 解决每次运行docker命令的时候要加sudo.2…

反射全解

反射的概念 反射的引入: Object obj new Student(); 若程序运行时接收到外部传入的一个对象,该对象的编译类型是Object,但程序又需要调用该对象运行类型的方法: 1.若编译和运行类型都知道,使用 instanceof判断后&…

CRegKey 注册表操作

1.简介 CRegKey提供了对系统注册表的操作方法,通过CRegKey类,可以方便的打开注册表的某个分支或子键(CRegKey::Open),可以方便的修改一个键的键值(CRegKey::SetValue),也可以查询某…

进程基础

进程的基本概念 程序顺序执行的特征: 1)顺序性:处理机严格按照程序所规定的顺序执行,每一步操作必须在下一步操作开始前执行 2)封闭性:程序在封闭的环境下运行,程序独占资源,资源的状…

用Docker容器自带的tensorflow serving部署模型对外服务

相信很多人和我一样,在试图安装tensorflow serving的时候,翻遍了网上的博客和官网文档,安装都是以失败而告终,我也是一样,这个问题折磨了我两个星期之久,都快放弃了。幸运的是在同事的建议下,我…

C资源

云风最近写了一篇博客《C语言的前世今生》。作为长期使用C语言开发网络游戏服务器的程序员,云风是有理由写这样一篇文字,不过还是感觉谈的不够深入,C语言在业界使用的现状没有怎么描写,有些意犹未尽。在这里想比较系统的谈谈个人对…

面试题汇总---深度学习(图像识别,NLP内容)

文章目录1.基本概念1.1 为什么神经网络中深度网络的表现比广度网络表现好?1.2 推导BP算法1.3 什么是梯度消失和梯度爆炸?1.4 常用的激活函数有哪些?1.5 常用的参数更新方法有哪些?1.6 解决过拟合的方法?数据层面模型层…

Python(28)-文件,os模块

文件1. 文件2. 文件的基本操作3. 读取文件open()3.1 文件指针: 标记从哪一个位置开始读取数据.3.2 文件的打开方式mode3.3 文件按行读取3.3.1 readline()3.3.2 readlines()4.文件输出f.write(),print()5.文件复制5.1 小文件复制(搬家)5.2 大文件复制&…

IOCP的程序

C代码 #include <winsock2.h> #include <mswsock.h> #include <windows.h> #include <stdio.h> #include <stdlib.h> #include <assert.h> #include "vld.h" #pragma message("automatic link to ws2_32.lib and…

PaperNotes(3)-图像分割-RCNN-FCN-Boxsup

图像分割算法对比小结1.{基本概念}2.{R-CNN}2.1R-CNN 网络结构选择性搜索算法为什么选择SVM作分类器边框回归2.2{R-CNN 训练}2.3{R-CNN实验结果}2.4{R-CNN语义分割}2.5{补充材料}2.5.1{R-CNN建议区域放缩}2.5.2{IOU阈值设置不一样的原因}2.5.3{Bounding-box回归修正}2.6{R-CNN存…

Python模块(3)--PIL 简易使用教程

PIL模块-用与记1.图片导入Image.open()2.图像显示.show()4.查看图片属性.format,.size,.mode3.图像格式转换.convert()4.图像模式“L”&#xff0c;“RGB”,"CYMK"5. 图片旋转.rotate()旋转方式1&#xff1a;旋转不扩展旋转方式2&#xff1a;旋转扩展旋转方式3&#…

输入输出系统

I/O设备&#xff1a;输入输出和存储功能的设备 I/O设备的分类 按传输的速度&#xff1a; 低速设备&#xff08;如键盘、鼠标、语音输入输出设备&#xff09; 中速设备&#xff08;如行式打印机、激光打印机等&#xff09; 高速设备&#xff08;如磁带机、磁盘机、光盘机等&…

模拟银行家算法

介绍 data.h #ifndef _Data_h_ #define _Data_h_#include <stdio.h> #include <stdlib.h> #include <string.h>#define ElemType PCB #define Status int #define true 1 #define false 0 #define OK 1 #define ERROR 0 #define RESOURCE_NUM …

js知识点汇总

1.本门课的作用&#xff08;JavaScript的作用&#xff09;所有基于Web的程序开发基础 2.一种计算机客户端脚本语言&#xff0c;主要在Web浏览器解释执行。 3.浏览器中Javascript&#xff0c;用于与用户交互&#xff0c;以及实现页面中各种动态特效 4.在HTML文件中&#xff0…

关于Java中String的问题

String 对象的两种创建方式&#xff1a; String str1 "abcd";//先检查字符串常量池中有没有"abcd"&#xff0c;如果字符串常量池中没有&#xff0c;则创建一个&#xff0c;然后 str1 指向字符串常量池中的对象&#xff0c;如果有&#xff0c;则直接将 st…

如何判断对象已经死亡

引用计数 给对象中添加一个引用计数器&#xff0c;每当有一个地方引用它&#xff0c;计数器就加 1&#xff1b;当引用失效&#xff0c;计数器就减 1&#xff1b;任何时候计数器为 0 的对象就是不可能再被使用的。 这个方法实现简单&#xff0c;效率高&#xff0c;但是目前主流…

算法(2)-二叉树的遍历(递归/迭代)python实现

二叉树的遍历1.深度优先DFS1.1 DFS 递归解法1.1.1先序遍历1.1.2中序遍历1.1.3后序遍历1.2 DFS迭代解法1.2.1先序遍历1.2.2中序遍历1.2.3后序遍历2.广度优先BFS3.二叉树的最大深度3.1递归3.2迭代4.翻转二叉树4.1递归4.1迭代5.合并两棵二叉树5.1递归5.2迭代有两种通用的遍历树的策…

利用posix_fadvise清理系统中的文件缓存

利用posix_fadvise清理系统中的文件缓存leoncom c/c,unix2011-08-03当我们需要对某段读写文件并进行处理的程序进行性能测试时&#xff0c;文件会被系统cache住从而影响I/O的效率&#xff0c;必须清理cache中的对应文件的才能正确的进行性能测试。通常清理内存可以采用下面的这…

空间分配

目前主流的垃圾收集器都会采用分代回收算法&#xff0c;因此需要将堆内存分为新生代和老年代&#xff0c;这样我们就可以根据各个年代的特点选择合适的垃圾收集算法。 大多数情况下&#xff0c;对象在新生代中 eden 区分配。当 eden 区没有足够空间进行分配时&#xff0c;虚拟…