热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

MYSQL基本数据库术语

您可能会注意到,已经读了本书这么多页,但是还没有看到几句行话和术语。虽然我们大致提了一下怎样利用样例数据库,但事实上,关于什么是“数据库”,我们一点东西都还没有介绍。不过,我们现在打算设计该数据库,然后开始实现它,这样就不能再避而不谈数据库术语了。介绍数据库术语就是本节的目的。本节介绍的一些术语全书都要用到,因此必须
您可能会注意到,已经读了本书这么多页,但是还没有看到几句行话和术语。虽然我们大致提了一下怎样利用样例数据库,但事实上,关于什么是“数据库”,我们一点东西都还没有介绍。不过,我们现在打算设计该数据库,然后开始实现它,这样就不能再避而不谈数据库术语了。介绍数据库术语就是本节的目的。本节介绍的一些术语全书都要用到,因此必须对其熟悉。所幸的是,关系数据库中的许多概念是相当简单的。事实上,关系数据库的吸引力主要来源于其基本概念的简单性。
    1.3.1基本术语
    在数据库世界中,MySQL归类为关系数据库管理系统(RDBMS)。所谓关系数据库管理系统的含义如下:
    ■ 数据库(RDBMS 中的“DB”)是存储信息的仓库,以一种简单的、规则的方式进行组织:
    ■ 数据库中的数据集组织为表。
    ■ 每个表由行和列组成。
    ■ 表中每行为一个记录。
    ■ 记录可包含几段信息;表中每一列对应这些信息中的一段。
    ■ 管理系统(“MS”)是允许通过插入、检索、修改或删除记录来使用数据的软件。
    ■ “关系”(“R”)一词表示一种特殊种类的DB MS,它通过寻找相互之间的共同元素使存放在一个表中的信息关联到存放在另一个表中的信息。关系数据库的能力在于它能够从这些表中方便地取出数据,并将关联各表中的信息相结合得出问题的答案,这些答案只依据单个表的信息是不可能得到的。这里有一个例子,示出了关系数据库怎样将数据组织成表并将一个表中的信息与另一个表中的信息相关联。假定您管理一个含有标题广告服务的Web 站点。您与公司有协议,这些公司希望有人在拜访您的站点上的网页时显示他们的广告。每当一个拜访者点击您的页面一次,您就向该拜访者的浏览器提供了嵌在页面中的广告的一次服务,并且给公司估算一点费
用。为了表示这些信息,要保存三个表(请参阅图1- 1)。一个是company 表,它含有公司名、编号、地址和电话号码等列。另一个是ad 表,它列出广告编号、拥有该广告的公司的编号以及每次点击时的计费数。第三个hit 表按广告编号记录广告点击次数以及广告提供服务的日期。
    利用单个表的信息可以回答某些问题。为了确定签协议的公司数目,只需对company 表中的行数计数即可。类似地,为了确定某个给定时间段中的点击次数,只需查看hit 表即可。其他问题要更为复杂一些,而且必须考虑多个表以确定答案。例如,为了确定Pickles.公司的每个广告在7月14日点击了多少次,应该按如下步骤使用这些表:
    1) 查询company 表中的公司名(Pickles, Inc)以找到公司编号( 14)。
    2) 利用公司编号查找ad 表中匹配的记录以便能够确定相关的广告编号。有两个这样的广告,48 和10 1。
    3) 对ad 表中匹配的每个记录,利用该记录中的广告编号查找hit 表中在所需日期范围内的匹配记录,然后对匹配的记录进行计数。广告编号为48 的匹配记录有三个,广告编号为101的匹配记录有两个。听起来很复杂!而这正是关系数据库系统所擅长的。这种复杂性在某种程度可以说是一种幻觉,因为上述每一步只不过是一个简单的匹配操作,它通过将一个表的行中的值与另一个表的行中的值相匹配,把一个表与另一个表相关联。这个简单的操作可以各种方式使用来回答各种各样的问题。每个公司有多少个不同的广告?哪个公司的广告最受欢迎?每个广告带来的收入是多少?当前记账期中每个公司的总费用是多少?现在我们已经介绍了关系数据库的理论,足以理解本书其余部分了,我们不必探究第三范式、实体关系图以及所有这一类的东西。如果您确实需要了解这些东西,那就太令人恐怖了,而且这也不是地方。建议您从阅读C.J.Date 和E . F.Codd 的某些书籍入手。
 

 1.3.2 查询语言术语
    MySQL使用一种称为SQL(Structured Query Language)的语言。SQL 是当今的标准数据库语言,所有主要的数据库系统都使用它。SQL 具有多种不同的语句,所有语句都是以一种不枯燥并有用的方式设计来与数据库进行交互的。正如其他语言一样, SQL 在初次接触时可能会令人感到有些古怪。例如,为了创建一个表,需要告诉MySQL表结构应该是什么样的。我们可能会根据图表来想像一个表,但MySQL不会,因此,在创建表时需要告诉MySQL一些东西,如下所示: 

    如果您不熟悉SQL 语句,可能会对这样的语句留下深刻的印象,但您不必以程序员的身份来学习怎样有效地使用SQL。如果逐步熟悉了SQL 语言之后,就会以一种不同的眼光来看待CREATE TABLE 语句,会认为它是一个有助于描述自己信息的伙伴,而不是一种奇怪的胡言乱语。
    1.3.3 MySQL的体系结构术语
    在您使用MySQL时,实际正使用以下两个程序,因为MySQL采用的是客户机/服务器体系结构:
    ■ 数据库服务器是一个位于存放您的数据的机器上的程序。它监听从网络上传过来的客户机的请求并根据这些请求访问数据库的内容,以便向客户机提供它们所要求的信息。
    ■ 客户机是连接到数据库服务器的程序,这些程序告诉服务器需要什么信息的查询。MySQL分发包包括服务器和几个客户机程序。可根据要达到的目的来使用客户机。最常用的客户机程序为mysql,这是一个交互式的客户机程序,它能发布查询并看到结果。其他
的客户机程序有: mysqldump 和mysqlimport,分别转储表的内容到某个文件或将文件的内容导入某个表; mysqladmin 用来查看服务器的状态并完成管理任务,如告诉服务器关闭等。如果具有标准的客户机不适合的应用,那么MySQL还提供了一个客户机编程库,可以编写自己的程序。客户机编程库可直接从C 程序中调用,如果希望使用C 语言以外的其他语言,还有几种其他的接口可用。
    MySQL的客户机/服务器体系结构具有如下好处:
    ■ 服务器提供并发控制,使两个用户不能同时修改相同的记录。所有客户机的请求都通过服务器处理,服务器分类辨别谁准备做什么,何时做。如果多个客户机希望同时访问相同的表,它们不必互相裁决和协商,只要发送自己的请求给服务器并让它仔细确定完成这些请求的顺序即可。
    ■ 不必在数据库所在的机器上注册。MySQL知道怎样在因特网上工作,因此您可以在任何位置运行一个客户机程序,此客户机程序可以连接到网络上的服务器。距离不是问题,可从世界上的任何地方访问服务器。如果服务器位于澳大利亚的某台机器上,那么当您带着自己的便携式电脑到冰岛去旅行时,仍然可以访问自己的数据库。
    这是否意味着任何人只要连接到因特网就可以访问您的数据?答案是否定的。MySQL含有一个灵活的安全系统,只允许那些有权限访问数据的人访问。可以保证那些人只能够做允许他们做的事。或许记账办公室的Sally 能够读取和更新(修改)记录,而服务台的Phil 只能查看记录。可以设置使用人员的权限。如果希望运行一个自含系统(独立系统),只要设置访问权限使客户机只能从服务器运行的主机上进行连接即可。
推荐阅读
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文详细介绍了云服务器API接口的概念和作用,以及如何使用API接口管理云上资源和开发应用程序。通过创建实例API、调整实例配置API、关闭实例API和退还实例API等功能,可以实现云服务器的创建、配置修改和销毁等操作。对于想要学习云服务器API接口的人来说,本文提供了详细的入门指南和使用方法。如果想进一步了解相关知识或阅读更多相关文章,请关注编程笔记行业资讯频道。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 推荐一个ASP的内容管理框架(ASP Nuke)的优势和适用场景
    本文推荐了一个ASP的内容管理框架ASP Nuke,并介绍了其主要功能和特点。ASP Nuke支持文章新闻管理、投票、论坛等主要内容,并可以自定义模块。最新版本为0.8,虽然目前仍处于Alpha状态,但作者表示会继续更新完善。文章还分析了使用ASP的原因,包括ASP相对较小、易于部署和较简单等优势,适用于建立门户、网站的组织和小公司等场景。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 本文介绍了adg架构设置在企业数据治理中的应用。随着信息技术的发展,企业IT系统的快速发展使得数据成为企业业务增长的新动力,但同时也带来了数据冗余、数据难发现、效率低下、资源消耗等问题。本文讨论了企业面临的几类尖锐问题,并提出了解决方案,包括确保库表结构与系统测试版本一致、避免数据冗余、快速定位问题等。此外,本文还探讨了adg架构在大版本升级、上云服务和微服务治理方面的应用。通过本文的介绍,读者可以了解到adg架构设置的重要性及其在企业数据治理中的应用。 ... [详细]
  • 禁止程序接收鼠标事件的工具_VNC Viewer for Mac(远程桌面工具)免费版
    VNCViewerforMac是一款运行在Mac平台上的远程桌面工具,vncviewermac版可以帮助您使用Mac的键盘和鼠标来控制远程计算机,操作简 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • Java String与StringBuffer的区别及其应用场景
    本文主要介绍了Java中String和StringBuffer的区别,String是不可变的,而StringBuffer是可变的。StringBuffer在进行字符串处理时不生成新的对象,内存使用上要优于String类。因此,在需要频繁对字符串进行修改的情况下,使用StringBuffer更加适合。同时,文章还介绍了String和StringBuffer的应用场景。 ... [详细]
  • MyBatis错题分析解析及注意事项
    本文对MyBatis的错题进行了分析和解析,同时介绍了使用MyBatis时需要注意的一些事项,如resultMap的使用、SqlSession和SqlSessionFactory的获取方式、动态SQL中的else元素和when元素的使用、resource属性和url属性的配置方式、typeAliases的使用方法等。同时还指出了在属性名与查询字段名不一致时需要使用resultMap进行结果映射,而不能使用resultType。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文介绍了2019年上半年内蒙古计算机软考考试的报名通知和考试时间。考试报名时间为3月1日至3月23日,考试时间为2019年5月25日。考试分为高级、中级和初级三个级别,涵盖了多个专业资格。报名采取网上报名和网上缴费的方式进行,报考人员可登录内蒙古人事考试信息网进行报名。详细内容请点击查看。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
author-avatar
Hmily-西瓜先生
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有