数据库原理及应用【一】引言

什么是数据库:一个大规模的集成的数据集合

作用:描述现实世界的实体(entities)以及实体之间的关系

管理数据库的系统软件:DBMS

文件是一个平滑的字符流,无法完成信息的检索和管理

数据(data):用来描述现实世界实体的符号。信息存在的形式
数据模型(data model):描述数据的一组概念和定义,数据的结构,描述数据的方法
数据模式(data schema):数据使用数据模型后得到就是数据模式

数据库系统的三级模式:

  • Physical schema 数据的物理模式:数据的实际存储模式
  • Conceptual schema 概念模式 :表的结构。基表,真正存储在磁盘上的,与物理模式中的数据对应
  • External schema 外模式 :用户看到的数据的样子

两层映射:物理模式和概念模式之间有存储方法的映射,概念模式和外模式之间有可计算的映射。

关系数据模型:一行叫做元组,一列叫做属性

数据的独立性:应用程序不受数据模型的影响,这种隔离叫做数据的独立性。

  • 逻辑独立性:应用不受数据逻辑模式的影响
  • 物理独立性:应用不受数据物理模式的影响
    根本原因在于数据模式之间的两层映射。

C/S结构:
在这里插入图片描述

B/S结构:
在这里插入图片描述
优点:

  • 对客户端要求很低
  • 版本更新方便
  • 用户活动范围广泛

缺点:
时延稍微大一些

很多软件上述两种架构都支持

Database System = Applications + DBMS + Database + DBA(管理员)

DBMS is the core of database system

  • High level user interfaces
  • Query processing and optimization
  • Catalog management
  • Concurrency control and Recovery
  • Integrity constraints checking
  • Access control

Database Design

  • Information requirement
  • Process requirement
  • DBMS feature
  • Hardware, OS feature

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

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

相关文章

Linux命令【三】gcc编译+静态库+动态库+makefile+gdb调试

用C编译器编译源文件:gcc 源文件 -o 可执行文件名 详细步骤: gcc -E a.c -o a.i预处理器将头文件展开,宏替换,去掉注释gcc -S a.i -o a.s编译器将C文件变成汇编文件gcc -c a.s -o a.o汇编器将会变文件变成二进制文件gcc a.o -o a…

用c++模拟实现一个学生成绩管理系统

https://blog.csdn.net/yanxiaolx/article/details/53393437题目&#xff1a;用c模拟实现一个学生成绩的信息管理系统&#xff0c;要求能添加、删除、修改、查看和保存学生的信息等功能 源代码如下:[cpp] view plaincopy#define _CRT_SECURE_NO_WARNINGS #include<iostr…

Linux命令【四】文件+虚拟内存+常用系统函数

File*其实是一个结构体 文件描述符FD&#xff1a;索引到对应的磁盘文件文件读写位置指针FP_POS&#xff0c;如果同时读写需要注意文件指针的位置I/O缓冲区BUFFER&#xff1a;保存内存指针&#xff0c;默认大小是8kb&#xff0c;用于减小我们对硬盘操作的次数。因为我们对硬盘的…

Python3列表

操作&#xff1a;索引、切片、加、乘、检查成员、确定序列长度、确定最大最小元素 定义&#xff1a; 列表名 [元素]下标列表名[x] 截取:列表名[x:y] 更新&#xff1a; list[x]y 或者使用append()方法添加列表项删除&#xff1a; del list[x]常用操作&#xff1a; 截取与…

Linux惊群效应详解(最详细的了吧)

https://blog.csdn.net/lyztyycode/article/details/78648798?locationNum6&fps1 linux惊群效应详细的介绍什么是惊群&#xff0c;惊群在线程和进程中的具体表现&#xff0c;惊群的系统消耗和惊群的处理方法。1、惊群效应是什么&#xff1f;惊群效应也有人叫做雷鸣群体效应…

epoll原理详解(最清晰)

https://blog.csdn.net/lyztyycode/article/details/79491419我只是把内容搬运过来做个记录&#xff0c;方便自己以后回头看。第一部分&#xff1a;select和epoll的任务关键词&#xff1a;应用程序 文件句柄 用户态 内核态 监控者要比较epoll相比较select高效在什么地方&#x…

Linux命令【五】系统函数

系统文件函数 stat函数 指针如果没有const一般表示传出参数&#xff0c;如果加const表示传入参数 struct stat dev_t st_dev文件设备编号ino_t st_ino节点 inode号是唯一的&#xff0c;每个inode节点的大小一般是128字节活着256字节&#xff0c;一般文件每2KB就设置一个ino…

生产者-消费者模型的两种实现方式

https://www.cnblogs.com/caolicangzhu/p/7086176.html本文主要来总结生产者-消费者模型的代码实现,至于其原理,请大家自行百度. 一、基于链表的生产-消费模型(条件变量)我们以链表为例,生产者进行头部插入,消费者进行头部删除,因此,先将链表相关操作封装为LinkList.h,具体代码…

Linux系统【一】CPU+MMU+fork函数创建进程

切板中的内容输出到文件### 进程相关概念 程序&#xff1a;编译好的二进制文件&#xff0c;在磁盘上&#xff0c;不占用系统资源&#xff08;不包括磁盘&#xff09;。&#xff08;剧本&#xff09; 进程&#xff1a;占用系统资源&#xff0c;是程序的一次运行。&#xff08;戏…

Ubuntu卸载软件

用过使用dpkg软件管理工具得到所有已经安装的软件&#xff0c;如果不清楚软件的全名可以使用grep命令进行查找 然后再使用sudo apt-get remove --purge 软件名卸载软件&#xff08;--purge参数会删除配置文件&#xff0c;删的干净一些&#xff09; 例如&#xff1a;

一个重要且实用的signal---SIGCHLD

https://blog.csdn.net/lyztyycode/article/details/78150805SIGCHLD(修改)因为笔者之前的文章里面有错误&#xff0c;今天发现&#xff0c;立马做个修改。在下面我的一段关于sigchld信号相对于直接调用wait函数的好处时&#xff0c;我说调用wait函数要一直检测子进程是否执行完…

数据结构实验之链表七:单链表中重复元素的删除

https://blog.csdn.net/blessingxry/article/details/794455111.知识点&#xff1a;逆序建立链表&#xff0b;节点删除 2.题意&#xff1a;按照数据输入的相反顺序&#xff08;逆位序&#xff09;建立一个单链表&#xff0c;并将单链表中重复的元素删除&#xff08;值相同的元素…

Python3函数和代码复用

函数的定义 def 函数名([参数列表]):注释函数体注意事项 函数形参不需要声明类型&#xff0c;可以使用return语句在结束函数执行的同时返回任意类型的值&#xff0c;函数返回值类型与return语句返回表达式i的类型一致 即使该函数不需要接受任何参数&#xff0c;也必须保留一堆…

一文说尽C++赋值运算符重载函数(operator=)

http://www.cnblogs.com/zpcdbky/p/5027481.html在前面&#xff1a;关于C的赋值运算符重载函数(operator)&#xff0c;网络以及各种教材上都有很多介绍&#xff0c;但可惜的是&#xff0c;内容大多雷同且不全面。面对这一局面&#xff0c;在下在整合各种资源及融入个人理解的基…

Python a和a[:]的区别

简单来讲a[:]是深复制&#xff0c;a是浅复制&#xff0c;相当于赋值a的话是赋值了指针&#xff0c;赋值a[:]相当于复制了a对应的那段空间 例如&#xff1a; a [1,1,1,1,1,1]for x in a:if x1:a.remove(x)print(a)运行结果&#xff1a; remove操作是移除序列中第一个x元素。…

约瑟夫环(c语言程序完整版)

https://blog.csdn.net/m_hahahaha1994/article/details/51742453约瑟夫环&#xff08;约瑟夫问题&#xff09;是一个数学的应用问题&#xff1a;已知n个人&#xff08;以编号1&#xff0c;2&#xff0c;3…n分别表示&#xff09;围坐在一张圆桌周围。从编号为k的人开始报数&am…

Linux系统【二】exec族函数及应用

文件描述符 文件描述符表是一个指针数组&#xff0c;文件描述符是一个整数。 文件描述符表对应的指针是一个结构体&#xff0c;名字为file_struct&#xff0c;里面保存的是已经打开文件的信息 需要注意的是父子进程之间读时共享&#xff0c;写时复制的原则是针对物理地址而言…

白话C++系列(27) -- RTTI:运行时类型识别

http://www.cnblogs.com/kkdd-2013/p/5601783.htmlRTTI—运行时类型识别 RTTI&#xff1a;Run-Time Type Identification。 那么RTTI如何来体现呢&#xff1f;这就要涉及到typeid和dynamic_cast这两个知识点了。为了更好的去理解&#xff0c;那么我们就通过一个例子来说明。这个…

使用头文件的原因和规范

原因 通过头文件来调用库功能。在很多场合&#xff0c;源代码不便&#xff08;或不准&#xff09;向用户公布&#xff0c;只 要向用户提供头文件和二进制的库即可。用户只需要按照头文件中的接口声明来调用库 功能&#xff0c;而不必关心接口怎么实现的。编译器会从库中提取相应…

转圈踢人问题

https://www.cnblogs.com/lanxuezaipiao/p/3339603.html 有N个人围一圈依次报数&#xff0c;数到3的倍数的人出列&#xff0c;问当只剩一个人时他原来的位子在哪里&#xff1f; 解答&#xff1a;经典的转圈踢人问题&#xff0c;好吧专业一点&#xff0c;约瑟夫环问题&#xff0…