日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

ORMMySQL

發布時間:2023/12/20 数据库 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ORMMySQL 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

概念:

ORM:對象關系映射 ,?全拼?Object-Relation Mapping ,是一種為了解決面向對象與關系數據庫存在的互不匹配現象的技術。主要實現模型對象到關系型數據庫數據的映射.比如:把數據庫表中每條記錄映射為一個模型對象

?

使用原因:

若不使用ORM框架實現一個應用程序時,我們可能會寫特別多數據訪問層的代碼,從數據庫保存、刪除、讀取對象信息,而這些代碼都是重復的。而使用ORM則會大大減少重復性代碼。對象關系映射主要實現程序對象到關系數據庫數據的映射。

?

ORM的核心原則:?
  · 簡單:以最基本的形式建模數據。比如將MySQL的一張表映射為一個python類,表中的字段就是此類的屬性.
  · 傳達性:將數據庫結構轉化成能夠被任何人理解的語言文檔化。比如MySQL的一張表就被ORM轉化為了一個python程序員熟悉的python類
  · 精確性:ORM將所有的mysql數據表都統一映射成了標準的python類,保持在代碼層面上的準確統一。

  · 易用:ORM將所有的對于持久化對象的CRUD操作全部都封裝成了方法,通過這種封裝避免了不規范、冗余、風格不一的SQL語句,方便編碼風格的統一和后期維護。?

?


ORM?作用 :
1. 將定義數據庫 `模型類 ` --->? 數據庫表
2. 將定義數據庫模型類中的 `屬性`? --->? 數據庫表字段
3. 將模型對象的操作(add,delete,commit)? --->? 對應sql語句,并將執行結果提交到數據庫

?


優點 :
0.只需要面向對象編程, 不需要面向數據庫編寫代碼.
1.實現了數據模型與數據庫的解耦, 屏蔽了不同數據庫操作上的差異.

2.使得遷移數據庫變得十分方便,可移植性高,如果項目需要更改數據庫時,直接修改配置即可,無需考慮另一種數據庫的語法差異.

3.省時高效率開發,降低開發成本?,不再需要寫復雜冗長的SQL語句,僅僅關心具體的業務邏輯實現即可.


缺點 :
0.相比較于直接使用SQL語句操作數據庫,有性能損失.
1.根據對象的操作轉換成SQL語句,根據查詢的結果轉化成對象, 在映射過程中有性能損失.

2.持久化層缺乏彈性。一旦出現業務需求的變更,就必須修改持久化層的接口?
3.持久化層同時與域模型與關系數據庫模型綁定,不管域模型還是關系數據庫模型發生變化,毒藥修改持久化曾的相關程序代碼,增加了軟件的維護難度。?

4.ORM的缺點是會犧牲程序的執行效率和會固定思維模式。?

5.在對對象做持久化時,ORM一般會持久化所有的屬性,但有時這是不被期望的
6.在處理多表聯查、where條件復雜之類的查詢時,ORM的語法會變得復雜

CURD :

數據庫基本操作中的Create(創建)、ReadRetrieve(讀取)、Update(更新)、Delete(刪除)。

?

SQL結構化查詢語言 :

DQL:?數據查詢語句/數據的查詢(select)
DML:?數據操作語句/數據的增刪改(insert delete updata)
DDL:?數據定義語句/庫和表的操作(create drop)
DCL:?數據控制語?, 進?授權與權限回收,(grant、 revoke)

TPL: 事務處理語言,對事務進行處理,包括begin transaction、 commit、 rollback
DCL: 數控制語言,進行授權與權限回收,如grant、 revoke

?

MySQL數據完整性包括 :

實體完整性,保證某一條記錄的唯一性,主要有 主鍵約束[primary key]&唯一鍵約束,一張表僅能有一個null[unique key]
域完整性,保證某一字段的類型或約束,主要有?非空[not null]&默認值[default xxx]
參照完整性,限制表之間的規則,即外鍵,主要有?外鍵約束[foreign key]
用戶定義完整性,用戶對某一字段的進一步控制范圍,限定約束

?

事務的特性(ACID) :
原子性A,事務中的全部操作在數據庫中是不可分割的,要么全部執行,要么均不執行
一致性C,幾個并行執行的事務,其執行結果必須與按某一順序串行執行的結果相一致
隔離性I,事務的執行不受其他事務的干擾,事務的執行的中間結果必須對其他事務透明
持久性D,對于任意已提交的事務,系統必須保證該事務對數據庫的該表永不丟失,即使數據庫出現故障

?

數據庫分類 :

關系型數據庫:?Oracle , MySQL , SQLite,基于關系模型的數據庫,是一個 二維表模型和表之間關系 的集合,適合于關系特別復雜的數據查詢場景.
非關系型數據庫(nosql):?mongDB , Redis,不基于關系模型,不是二維表模型,強調以?key - value?格式存儲數據,比關系型數據庫更加靈活和可擴展,基本不支持事務.

?

MySQL & Redis :

?

轉載于:https://www.cnblogs.com/hsmwlyl/p/10576148.html

總結

以上是生活随笔為你收集整理的ORMMySQL的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。