软考中级数据库系统工程师-第6-7章 数据库技术基础关系数据库

news2024/11/24 13:49:49

1.数据库系统基本概念

1)数据库系统(DBS)是一个采用了数据库技术,有组织地、动态地存储大量相关联数据,方便多用户访问的计算机系统。广义上来讲,DBS是由数据库、硬件、软件和人员组成。

2)数据库(DB):数据间联系密切、冗余度小、独立性较高、易扩展,并且可为各类用户共享。

3)数据库管理系统(DBMS)是数据库系统管理系统的核心软件。其主要功能包括数据定义功能、数据操作功能、数据库的运行管理和数据库的建立与维护

4)数据库管理员(DBA),负责数据库的总体信息控制。

5)DBMS提供数据定义语言(DDL),用户可以对数据库的结构描述,包括外模式、模式和内模式定义;数据库的完整性定义;安全保密定义,如口令、级别和存储权限等,这些定义存储在数据字典中,是DBMS运行的基本依据。

6)数据操纵语言(DML),实现对数据库中数据的基本操作,如检索、插入、删除和修改

7)DBMS特点:数据结构化且统一管理;有较高的独立性;数据控制功能(数据的安全性和完整性、并发控制、故障恢复)

8)DBMS分类:关系型数据库系统、面向对象的数据库系统、对象关系数据库系统

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

视图层:描述整个数据库的某个部分。

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

物理层:描述数据在存储器是如何存储的。

概念模式:也称模式。是数据库中全部数据的逻辑结构和特征的描述,只设计型的描述,不涉及具体的值。

外模式:也称用户模式或子模式。是用户与数据库系统的接口,是用户用到的那部分数据的描述(关键词:视图)。

内模式也称存储模式,是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。定义所有的内部记录类型、索引、文件的组织方式,以及数据控制方面的细节。

3.两级映像

1)模式/内模式的映像:实现了概念模式到内模式之间的相互转换。

2)外模式/模式的映像:实现了外模式到概念模式之间的相互转换。

4.数据的独立性

1)数据的物理独立性:是指当数据库的内模式发生改变时,数据的逻辑结构不变。当数据的物理结构改变时,需要修改模式/内模式映像

2)数据的逻辑独立性:是指用户的应用程序与数据库的逻辑结构是相互独立的。当数据的逻辑结构改变时,需要修改外模式/模式映像

数据模型的三要素:数据结构、数据操作和数据的约束条件

5.E-R模型

属性:

1)简单属性和复合属性:简单属性是原子的、不可再分的,复合属性可以细分为更小的部分。

2)NULL属性: 表示无意义或不知道

3)派生属性:派生属性可以从其它属性得来。

E-R模型下午题常考的几种情况:

1)两方联系:两个实体之间产生联系。说明中的句子类似BA,AB。

2)三方联系:当同一个联系需要三方同时参与的时候就是三方联系。说明中的句式类似AB,BC。

3)弱实体:一个实体的存在必须以另一个实体为前提。

4)聚合:将联系作为实体,与其它实体产生联系。即两个实体A和B先产生联系,联系本身再和C产生联系,需要用方框把A和B之间的联系框起来。

5)子实体:一个实体集可以按照某些特征区分为几个子实体。

6)同一实体集内的联系:同一实体集内的两个实体之间相互存在着一定的联系。

PS:三方联系和聚合的区别:三方联系必须要三方实体同时参与,而聚合是有先后顺序的,两个实体先产生联系,再与第三个实体产生联系。

TIPS:需求分析、概念结构设计(E-R图)、逻辑结构设计(关系模式)三者是相互关联的。

6.关系的相关名词

1)候选码:若关系中的某一属性或属性组的值能唯一标识一个元组,则称该属性或属性组为候选码。

2)主码:主键,若一个关系有多个候选码,则选定其中一个为主码。

一个关系模型只能有一个主码,候选码可以有多个。

3)主属性:包含在任何候选码中称为主属性,不包含在任何候选码中称为非主属性。

4)全码:关系模型的所有属性组是这个关系模式的候选码,称为全码。

5)元组/记录:行

6)字段/数据项:列

7)元数:属性的个数(列数)

8)基数:记录的个数(行数)

关系的三种类型:基本关系(基本表)、查询表、视图表

关系完整性约束的分类:实体完整性、参照完整性、用户定义完整性

7.关系代数运算

1)并:关系R和S具有相同的关系模式(元数相同)

2)差:关系R和S具有相同的关系模式(元数相同)

3)广义笛卡尔积:两个元数分别为m和n的关系R和S的广义笛卡尔积是一个(m+n)列的元组的集合。若关系R和S分别有P和Q个元组,则R和S的广义笛卡尔积共有P*Q个元组。

4)投影:从关系的垂直方向进行运算

5)选择:从关系的水平运算开始运算

PS:无引号6:表示第6列;有引号‘6’:表示数字6

7)交:关系R和S具有相同的关系模式(元数相同)

8)连接:笛卡尔积为无条件连接,其它的连接为有条件连接

自然连接:要求两个关系中进行比较的分量必须是相同的属性组,并且在结果集中将重复属性列去掉。(即从水平方向运算也从垂直方向运算)

9)除:同时从水平方向运算也从垂直方向运算

10)外连接:

左外连接:左侧为准,右侧填充

右外连接:右侧为准,左侧填充

全外连接:左右都填充

在关系运算中,笛卡尔积(更耗费时间)、连接运算最费时间和空间

8.关系数据库设计基础知识

1.函数依赖

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

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

相关文章

centos 8 安装 jdk8

去官网下载RPM软件包 下载地址:https://www.oracle.com/java/technologies/downloads/#java8 上传到服务器指定路径,进行安装 rpm -ivh jdk-8u371-linux-x64.rpm 配置JAVA_HOME环境变量 查找jdk安装路径 java -verbose修改系统环境变量文件 vi /e…

软件工程还是网络安全专业好

这个问题需要根据个人的兴趣和职业规划来选择。 从兴趣方面来看,如果你对计算机系统的设计和开发更感兴趣,那么选择软件工程专业可能更适合你。如果你对计算机系统的安全性更感兴趣,那么选择网络安全专业可能更适合你。 从职业规划方面来看…

Kyligence 连续入选 Gartner 揭秘服务自助式分析的语义层报告

近日,全球权威的技术研究与咨询公司 Gartner 发布了《揭秘服务自助式分析的语义层》(Demystifying Semantic Layers for Self-Service Analytics) 研究报告。Kyligence 是国内唯一连续入选此报告的厂商,此前曾入选 Gartner 指标平台创新洞察报告、数据管…

Gitlab----Gitlab-runner简介

【原文链接】Gitlab----Gitlab-runner简介 gitlab-runner是用于执行GitlabCI/CD任务的工具,通俗点来说它就是用来执行gitlab上的CI/CD任务的机器,当然这里的机器是广义上的,它可以是物理机、虚拟机、Docker甚至是Kubernetes。 GitLab Runne…

分布式实战教程13:ruoyi-vue-pro开发指南

文章目录 前言一、入门必读1、简介2、项目地址3、技术选型(1)技术架构图(2)后端(3)前端 4、功能列表5、内置功能6、快速启动(1)克隆代码(2)Apifox 接口工具&a…

chatgpt赋能Python-pythondic

Python Dict - Python中最有用的数据结构之一 当谈到Python的数据结构时,Python字典(Python Dict)是最常用和最有用的数据结构之一。Python字典是一个非常强大且多才多艺的数据结构,它不仅易于学习和使用,而且可以大大…

chatgpt赋能Python-pythonforin

Python for-in循环及其应用 作为一门通用编程语言,Python具备众多操作的能力。在Python中,for-in循环是最常用的循环语句之一。它对于遍历列表,元组,字典或集合等结构非常有用。在本文中,我们将探讨Python for-in循环…

大数据面试题总结

1.说一下最近做的项目 (1)我把实时简单说了一下,说的一般 2.说一说为什么要数仓分层 (1)把维度建模随便说了下,又扯了一下分层 3.说一下数据倾斜 (1)没回答好,hive只说了groupby flink说了一下keyby的三种情况 4.说一下hive小文件问题 1.介…

【Java】IDEA 配置java开发环境(windows)

刚才需要临时运行一个java脚本,java还是2、3年前学的,都忘光了。IDEA 2021还在我电脑装着,进去却忘记了怎么配置java环境,这里复习一下。 文章目录 01 安装 JDK1.1 下载与安装1.2 配置环境变量 02 在IDEA中运行java程序 01 安装 J…

大量名片图片转excel表格文件怎么转?有什么好办法?

随着市场经济的发展和社交交往的频繁,名片作为有效沟通方式,优雅和高效地传递个人或公司信息的同时,时常成为人们忙碌生活的问题之一:对于一个拿到的名片,我们需要将它收藏或转录至手机、电脑等媒介记录,但…

系统设计基础-大型网站通用架构模式

文章目录 一.何谓模式二.通用架构模式1.分层2.分割3.分布式4.集群5.缓存6.异步处理7.冗余备份8.自动化9.安全 本文主要参考自《大型网站技术架构:核心原理与案例分析》一书第二章节和其他网络文章,如有遗漏或错误,还望海涵并指出。谢谢&#…

基于PSO的无线传感器网络CH选择算法(Matlab代码实现)

目录 💥1 概述 📚2 运行结果 🎉3 参考文献 👨‍💻4 Matlab代码 💥1 概述 CH(Contraction Hierarchies)算法是 Robert Geisberger、Peter Sanders、Dominik Schultes及Daniel Delling于2008年发布的&…

js中的类

1、构造函数与类 class Person{// 构造函数// 构造函数在调用类,实例化对象时调用constructor(name,age){console.log(构造器被调用了!);console.log(name,age);// 在构造函数中,this表示当前所创建的对象// this.name对象的属性&#xff0c…

简单说明芯片的启动过程和程序执行过程

目录 1.芯片启动过程 2.启动代码 2.1 堆栈定义 2.2 向量表 2.3 复位程序 2.4 中断服务程序 3. 程序执行的过程 4.数据的存取 1.芯片启动过程 芯片启动是上电后先运行芯片内部的固有程序(也就是启动代码)。启动代码程序建立完运行环境之后&#x…

微波基础介绍

1、什么是微波 大家在高中物理中都学过电磁波,可见光、微波都是电磁波波段,如下图所示,可见光谱只占有宽广的电磁波谱的一小部分: 而我们这次的主角微波,是频率范围300MHz到3THz的电磁波(1THz1000GHz&…

Clion结合CubeMX以Makefile编译和构建STM32以及OPENOCD调试嵌入式的优雅开发

目录 说在前面 Clion结合CubeMX以Makefile编译和构建STM32 新建目录和文件 串口打印问题解决,重定向fptuc失效. 说在前面 有稚晖君的一文,结果可能就让你对嵌入式开发更加易于上手。这是工具上的革新带给你的,这也是一个好的IDE带给开发人员不一样的优雅体验。…

〖Python网络爬虫实战㉗〗- Selenium案例实战(一)

订阅:新手可以订阅我的其他专栏。免费阶段订阅量1000 python项目实战 Python编程基础教程系列(零基础小白搬砖逆袭) 说明:本专栏持续更新中,目前专栏免费订阅,在转为付费专栏前订阅本专栏的,可以免费订阅付…

C++ 从代码到可以执行的过程(预编译、编译、汇编、链接)(以Linux为参考)

参考阿秀的学习笔记 测试代码 #include<iostream> using namespace std; #define PI 3.14 int main(){//测试代码cout<<PI<<endl;cout<<"hello world"<<endl;return 0; }预处理 处理内容 删除define&#xff0c;展开所有宏定义处理…

羡慕大劳星空顶?不如跟我一起使用 Jetpack compose 绘制一个星空背景(带流星动画)

前言 背景 作为一个自诩的电影爱好者&#xff0c;经常会在半夜看电影&#xff0c;看完后就会顺道去豆瓣标记一下看过&#xff0c;再看看别人对这个电影的理解。 某日深夜&#xff0c;看完电影后&#xff0c;顺手打开了豆瓣的 书影音记录 这个功能&#xff0c;起初并没有注意…

c++虚函数详解(多态特性)

1.c多态的概念 多态是c的特征之一 多态的分类&#xff1a;静态多态&#xff08;静态联编&#xff09;、动态多态&#xff08;动态联编&#xff09; 静态多态&#xff08;静态联编&#xff09;&#xff1a;函数入口地址 是在 编译阶段 确定&#xff08;运算符重载、函数重载&…