數據庫(一)| 數據庫概述、基本概念、關系型數據庫特點、超鍵候選碼等

文章目錄

  • 1 數據庫的一些基礎概念
    • 1.1 數據庫和數據庫管理系統
    • 1.2 關系模式和關系實例
    • 1.3 數據庫模式和數據庫實例
  • 2 數據庫組織形式
    • 2.1 數據采用文件的缺點
    • 2.2 使用數據庫管理系統的 優點
  • 3 關系型數據庫特點
  • 4 三個層次的數據抽象Data Abstraction
  • 5 超鍵、候選碼、主碼、外碼

1 數據庫的一些基礎概念

1.1 數據庫和數據庫管理系統

A database-management system (DBMS) is a collection of interrelated data and a set of programs to access those data.

It is a powerful tool for managing large amount of data efficiently and allowing data to persist safely.

Database refers to a collection of data that is managed by a DBMS

數據庫是一組相關數據的集合,而數據庫管理系統(DBMS)是管理、維護和操作這些數據的軟件系統。簡單來說,數據庫是數據的集合,而DBMS是用來管理和操作這些數據的工具。

1.2 關系模式和關系實例

關系模式(Relation Schema)和關系實例Relation Instance是關系型數據庫中的兩個不同但相關的概念。

A relation schema (關系模式) consists of a list of attributes and their corresponding domains.It defines the structure of the table, but does not include any actual data.

關系模式(Relation Schema)是指關系型數據庫中表格的結構,包括表格的名稱、列名、數據類型、主鍵和外鍵等。它定義了表格的結構,但并不包含任何實際的數據。關系模式通常通過CREATE TABLE語句來定義。

A relation instance (關系實例) is a set of tuples over a relation schema

關系實例(Relation Instance)是指關系模式中表格中的具體數據,也就是表格中的行和列。它是關系模式的一個具體實例,包括表格中的所有數據。關系實例可以通過SELECT語句來檢索和查詢。

例如,假設我們有一個關系模式為“學生(Student)”,包括學生編號(Student ID)、姓名(Name)、年齡(Age)和性別(Gender)等列。那么,關系實例就是表格中的具體數據,如學生編號為001、姓名為張三、年齡為20歲、性別為男性等。

1.3 數據庫模式和數據庫實例

數據庫模式(Database Schema)是數據庫的結構圖,它描述了數據庫中各個表、列、主鍵、外鍵等的結構和關系。也就是說,數據庫模式定義了數據庫中數據的邏輯結構,包括表格、關系、約束和索引等元素。它是一個靜態概念,不會發生變化,除非進行數據庫結構的修改。

Database schema (數據庫模式) – is the logical structure of the database

數據庫實例(Database Instance)是指在計算機內存中運行的數據庫,它是數據庫在運行時的狀態。也就是說,數據庫實例包含了數據庫中所有數據的副本以及處理這些數據的進程和線程。每個數據庫實例都有自己的內存空間和處理器資源,可以獨立地進行處理和管理。

Database instance (數據庫實例) – is a snapshot of the data in the database at a given instant in time.

2 數據庫組織形式

2.1 數據采用文件的缺點

1 獲得數據很困難,得為每一個潛在的程序寫代碼程序

Difficulty in accessing data

2 數據丟失或者不一致

Data redundancy and inconsistency

3 完整性問題

Integrity problem

4 并發訪問,或者操作到一半的時候可能會出現程序崩掉,這時候數據庫可能會把前面未完整執行的進行執行

Concurrent-access problem

5 安全訪問問題

Security problem

6 操作原子性問題

Atomicity problem

2.2 使用數據庫管理系統的 優點

主要是兩方面

? 便于查詢和修改數據

? 便于確定數據邏輯結構

? 支持大量數據

? 訪問控制

? 原子性操作

即事務是原子的。原子性是指事務中的所有操作被視為一個單獨、不可分割的操作,要么全部執行成功,要么全部失敗回滾,不會出現部分執行的情況。

這意味著,如果一個事務包含多個操作,如果其中任何一個操作失敗,整個事務就會回滾,回到原始狀態,所有的操作都會取消。這種方式可以確保數據的一致性和完整性,避免了數據損壞或錯誤的情況。

3 關系型數據庫特點

  1. 數據以表格(表)的形式存儲,其中每個表包含行和列,每個表有獨一無二的名稱
  2. 表之間可以建立關系,通過外鍵(foreign key)實現表之間的連接。
  3. 數據庫使用結構化查詢語言(SQL)進行查詢和操作。
  4. 關系型數據庫通常支持事務處理和數據完整性控制。

4 三個層次的數據抽象Data Abstraction

Logical level:users can see all tables and how they are related

比如數據表的組織方式

Physical level: describe how data is stored in a file.

比如某一個內容占據多少字節等等

View level: users can see the tables within the scope of their requirements and permissions.

比如教師可以看到教師的數據表,而學生只能看到學生的數據表

5 超鍵、候選碼、主碼、外碼

超鍵

在關系型數據庫中,**超鍵(Superkey)**是能夠唯一標識一個關系中元組的一組屬性集合。簡單來說,超鍵是可以唯一區分關系模式中不同元組的一組屬性。

超鍵具有以下特點:

  1. 超鍵必須是唯一的,即在關系模式中沒有兩個元組具有相同的超鍵值。
  2. 超鍵可以包含一個或多個屬性。
  3. 超鍵可以是候選鍵(Candidate Key)的超集,也可以是包含主鍵(Primary Key)的超鍵。

候選碼

? 最小的超鍵,可以有多個

主碼

? 從候選碼里選出來,唯一的一個 主碼是數據庫表中的一個字段或一組字段,用于唯一標識表中的每一行記錄。

主碼是數據庫表中唯一標識記錄的字段或字段集合,每個表只能有一個主碼。候選碼也是具有唯一性的字段或字段集合,但一個表可以有多個候選碼,其中一個通常會被選擇為主碼。主要區別在于主碼是表的主要標識符,而候選碼是備選的唯一標識符。

寫一個關系模式,將主鍵用下劃線畫出來,且一般在其他元素前

**在這里插入圖片描述
**

寫出他的關系模式

注意這里,用 兩個才能唯一區別building, room number同時畫下劃線

外碼

"參照關系"和"被參照關系"是用來描述表之間關系的術語,它們涉及到外碼(Foreign Key)和主碼(Primary Key)之間的聯系。以下是它們的解釋:

  1. 參照關系(Referencing Relationship):

    • "參照關系"指的是包含外碼(Foreign Key)的表,該外碼引用另一張表的主碼(Primary Key)或候選碼(Candidate Key)。
    • 在參照關系中,外碼字段存儲了關聯表的鍵值,它用于確立兩個表之間的關聯。
    • 表示為:表A包含一個外碼字段,該字段引用了表B的主碼或候選碼,這時表A就與表B存在參照關系。
  2. 被參照關系(Referenced Relationship):

    • "被參照關系"指的是包含主碼或候選碼的表,該表的鍵值被外碼字段引用,從而使其他表可以與它建立關聯。
    • 在被參照關系中,一個表的主碼或候選碼通常被其他表的外碼引用,這表明它在其他表中作為關聯的目標。
    • 表示為:表B的主碼或候選碼被表A的外碼引用,這時表B就與表A存在被參照關系。

例如,考慮以下兩個表:Customers(客戶)和Orders(訂單)。Customers 表的 CustomerID 字段是主碼,而 Orders 表的 CustomerID 字段是外碼。這種情況下:

  • Customers 表是被參照關系表,因為它的主碼(CustomerID)被 Orders 表的外碼字段(CustomerID)引用,允許訂單表與客戶表建立關聯,以指示哪些客戶下了哪些訂單。
  • Orders 表是參照關系表,因為它包含了外碼字段(CustomerID),該字段引用了客戶表的主碼(CustomerID),用于建立訂單表與客戶表之間的關聯。

總之,參照關系和被參照關系描述了表之間的關聯,外碼與主碼之間的關系非常重要,它們有助于維護數據完整性,并允許查詢和檢索相關數據

一個關系數據庫由多個表組成,每個表有自己獨一無二的名字

一個表通常內概念有 屬性,元組,分量

在這里插入圖片描述

概念

屬性的域(domain):屬性允許的值的集合,比如年齡這個屬性,允許的值是正整數

r 的所有屬性的域都應該是原子的。什么原子的?域的元素被認為是不可分割的單元

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/215714.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/215714.shtml
英文地址,請注明出處:http://en.pswp.cn/news/215714.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

php之jwt使用

PHP JWT(JSON Web Token)是一種用于身份驗證和授權的開放標準。JWT是一個包含有關用戶或實體身份信息的安全令牌,它由三部分組成:頭部(Header)、載荷(Payload)和簽名(Sig…

計算機網絡編程

網絡編程 Java 是第一大編程語言和開發平臺。它有助于企業降低成本、縮短開發周期、推動創新以及改善應用服務。如今全球有數百萬開發人員運行著超過 51 億個 Java 虛擬機, Java 仍是企業和開發人員的首選開發平臺。 課程內容的介紹 1. 計算機網絡基礎 2. So…

數據結構基礎介紹

一.起源及重要性 1968 年,美國的高德納 Donakl E . Kn uth 教授在其所寫的《 計算機程序藝術》第一卷《基本算法 》 中,較系統地闡述了數據的邏輯結構和存儲結構及其操作, 開創了數據結構的課程體系 ,數據結構作為一門獨立的…

B029-JDBC增強

目錄 PreparedStatement 查詢1.sql注入2.Statement分析 (面試題)3.PreparedStatement (面試題) 登錄功能的完善事務鏈接池概念實現DBCP連接池實現第一種配置方式第二種配置方式 返回主鍵BaseDao的抽取 PreparedStatement 查詢 1.sql注入 就是在sql的字符串拼接的時候&#xf…

基于單片機的定時插座在智能家居中的應用

近年來,隨著科學技術的發展迅速,人們對智能化的要求越來越高。越來越多的智能化產品進入千家萬戶,如電腦電視、掃地機器人、智能空氣凈化器等。這些家居電器和電子產品大都需要連接電源,為滿足多種用電器的正常使用,延…

DevEco Studio 生成HPK文件

DevEco Studio 生成HPK文件 一、安裝環境 操作系統: Windows 10 專業版 IDE:DevEco Studio 3.1 SDK:HarmonyOS 3.1 二、生成HPK文件 生成的HPK文件存放在entry文件夾下。下圖是未生成HPK的樣式。 生成HPK:菜單Build->Build Hap(s)/APP(s)->Build Hap(s)…

啟動jar包命令

一、Windows環境 找到jar包的位置; 按shift鍵,點擊鼠標右鍵,選中在此處打開PowerShell窗口; 此時進入命令行工具 輸入java -jar .\java_web-0.0.1-SNAPSHOT.jar(注意空格)。 二、Linux環境 2.1 方式一 …

039.Python面向對象_三大特性綜合案例2

我 的 個 人 主 頁:👉👉 失心瘋的個人主頁 👈👈 入 門 教 程 推 薦 :👉👉 Python零基礎入門教程合集 👈👈 虛 擬 環 境 搭 建 :👉&…

一、微前端目標、前端架構的前生今世、微前端架構優勢和劣勢、軟件設計原則與分層

1、目標 2、前端架構的前世今生 ① 初始:無架構,前端代碼內嵌到后端應用中 ② 后端 MVC 架構:將視圖層、數據層、控制層做分離 缺點:重度依賴開發環境,代碼混淆嚴重(在調試時,需要啟動后端所有…

小型洗衣機哪個牌子質量好?迷你洗衣機排名前十名

隨著內衣洗衣機的流行,很多小伙伴在糾結該不該入手一款內衣洗衣機,專門來洗一些貼身衣物,答案是非常有必要的,因為我們現在市面上的大型洗衣機只能做清潔,無法對我們的貼身衣物進行一個高強度的清潔,而小小…

【CCF BDCI 2023】多模態多方對話場景下的發言人識別 Baseline 0.71 NLP 部分

【CCF BDCI 2023】多模態多方對話場景下的發言人識別 Baseline 0.71 NLP 部分 概述NLP 簡介文本處理詞嵌入上下文理解 文本數據加載to_device 函數構造數據加載樣本數量 len獲取樣本 getitem 分詞構造函數調用函數輪次嵌入 RobertaRoberta 創新點NSP (Next Sentence Prediction…

23種設計模式之裝飾者模式(被裝飾者,接口層,裝飾抽象層,具體裝飾者)

23種設計模式之裝飾者模式 文章目錄 23種設計模式之裝飾者模式設計思想裝飾者模式的優點裝飾者模式的缺點裝飾者模式的優化方法UML 解析預設場景 代碼釋義總結 設計思想 原文:裝飾器模式(Decorator Pattern)允許向一個現有的對象添加新的功能&#xff0…

應用在LED燈光控制觸摸屏中的觸摸芯片

LED燈光控制觸摸屏方法,包括:建立觸摸屏的觸摸軌跡信息與LED燈光驅動程序的映射關系;檢測用戶施加在觸摸屏上的觸摸軌跡,生成觸摸軌跡信息;根據生成的觸摸軌跡信息,調用對應的LED燈光驅動程序,控…

HJ14 字符串排序

一、題目 描述 給定 n 個字符串,請對 n 個字符串按照字典序排列。數據范圍: 1 \le n \le 1000 \1≤n≤1000 ,字符串長度滿足 1 \le len \le 100 \1≤len≤100 輸入描述: 輸入第一行為一個正整數n(1≤n≤1000),下面n行為n個字符…

智能優化算法應用:基于頭腦風暴算法3D無線傳感器網絡(WSN)覆蓋優化 - 附代碼

智能優化算法應用:基于頭腦風暴算法3D無線傳感器網絡(WSN)覆蓋優化 - 附代碼 文章目錄 智能優化算法應用:基于頭腦風暴算法3D無線傳感器網絡(WSN)覆蓋優化 - 附代碼1.無線傳感網絡節點模型2.覆蓋數學模型及分析3.頭腦風暴算法4.實驗參數設定5.算法結果6.…

說說React中的虛擬dom?在虛擬dom計算的時候diff和key之間有什么關系?

虛擬 DOM(Virtual DOM)是 React 中的一種機制,通過在內存中構建一棵輕量級的虛擬 DOM 樹來代替操作瀏覽器 DOM,從而提高組件的渲染性能和用戶體驗。 在 React 中,當組件的 Props 或 State 發生變化時,Reac…

智能優化算法應用:基于蝙蝠算法3D無線傳感器網絡(WSN)覆蓋優化 - 附代碼

智能優化算法應用:基于蝙蝠算法3D無線傳感器網絡(WSN)覆蓋優化 - 附代碼 文章目錄 智能優化算法應用:基于蝙蝠算法3D無線傳感器網絡(WSN)覆蓋優化 - 附代碼1.無線傳感網絡節點模型2.覆蓋數學模型及分析3.蝙蝠算法4.實驗參數設定5.算法結果6.參考文獻7.MA…

酷開科技多維度賦能營銷,實力斬獲三項大獎

在數智化新階段、廣告新生態、傳播新業態的背景下,“第30屆中國國際廣告節廣告主盛典暨網易傳媒態度營銷峰會”于11月18日在廈門國際會展中心盛大舉行。來自全國的品牌方、戰略決策者、媒體平臺和品牌服務機構等匯聚一堂。在50000+現場觀眾和數千萬線上觀…

openssl的x509命令工具

X509命令是一個多用途的證書工具。它可以顯示證書信息、轉換證書格式、簽名證書請求以及改變證書的信任設置等。 用法: openssl x509 [-inform DER|PEM|NET] [-outform DER|PEM|NET] [-keyform DER|PEM] [-CAform DER|PEM] [-CAkeyform DER|PEM] [-in filename…

vue elementui點擊按鈕新增輸入框(點多少次就新增多少個輸入框,無限新增)

效果如圖&#xff1a; 核心代碼&#xff1a; <div v-for"(item,index) in arrayData" :key"item.id">//上面這個是關鍵代碼&#xff0c;所有思路靠這個打通<el-inputtype"input" //除了輸入框&#xff0c;還有textarea等placeholder&…