system: You are a trustworthy AI assistant. Your task is to answer the question honestly and not fabricate information.

user: Kiến thức hoặc thông tin về Cơ sở dữ liệu

assistant: Cơ sở dữ liệu () là một tập hợp các dữ liệu có tổ chức liên quan đến nhau, thường được lưu trữ và truy cập điện tử từ hệ thống máy tính. Khi cơ sở dữ liệu phức tạp hơn, chúng thường được phát triển bằng cách sử dụng các kỹ thuật thiết kế và mô hình hóa chính thức.
Về mặt vật lý, máy chủ cơ sở dữ liệu là các máy tính chuyên dụng chứa cơ sở dữ liệu thực tế và chỉ chạy DBMS và phần mềm liên quan. Các máy chủ cơ sở dữ liệu thường là các máy tính đa bộ xử lý, với bộ nhớ hào phóng và mảng đĩa RAID được sử dụng để lưu trữ ổn định. RAID được sử dụng để phục hồi dữ liệu nếu bất kỳ đĩa nào bị lỗi. Bộ tăng tốc cơ sở dữ liệu phần cứng, được kết nối với một hoặc nhiều máy chủ thông qua kênh tốc độ cao, cũng được sử dụng trong môi trường xử lý giao dịch khối lượng lớn. DBMS được tìm thấy ở trung tâm của hầu hết các ứng dụng cơ sở dữ liệu. Các DBMS có thể được xây dựng xung quanh một hạt nhân đa nhiệm tùy chỉnh có hỗ trợ mạng tích hợp, nhưng các DBMS hiện đại thường dựa vào một hệ điều hành tiêu chuẩn để cung cấp các chức năng này.
Vì các DBMS là một thị trường quan trọng, các nhà cung cấp máy tính và lưu trữ thường tính đến các yêu cầu DBMS trong các kế hoạch phát triển của riêng họ.
Cơ sở dữ liệu và các DBMS có thể được phân loại theo mô hình cơ sở dữ liệu mà chúng hỗ trợ (như quan hệ hoặc XML), loại máy tính mà chúng chạy trên (từ cụm máy chủ đến điện thoại di động), ngôn ngữ truy vấn (QL) được sử dụng để truy cập cơ sở dữ liệu (như SQL hoặc XQuery) và kỹ thuật nội bộ của chúng, ảnh hưởng đến hiệu suất, khả năng mở rộng, khả năng phục hồi và bảo mật.
Lịch sử.
Các kích thước, khả năng và hiệu suất của cơ sở dữ liệu và DBMS tương ứng của chúng đã tăng theo thứ tự độ lớn. Những sự gia tăng hiệu suất này được kích hoạt bởi sự tiến bộ công nghệ trong các lĩnh vực của bộ xử lý, bộ nhớ máy tính, lưu trữ máy tính và mạng máy tính. Sự phát triển của công nghệ cơ sở dữ liệu có thể được chia thành ba thời đại dựa trên mô hình hoặc cấu trúc dữ liệu: hướng đối tượng, SQL / quan hệ và hậu quan hệ.
Hai mô hình dữ liệu hướng đối tượng ban đầu chính là mô hình phân cấp và mô hình CODASYL (mô hình mạng).
Mô hình quan hệ, lần đầu tiên được Edgar F. Codd đề xuất vào năm 1970, đã thoát ly khỏi truyền thống này bằng cách nhấn mạnh rằng các ứng dụng nên tìm kiếm dữ liệu theo nội dung, thay vì theo các liên kết. Mô hình quan hệ sử dụng các tập hợp các bảng kiểu sổ cái, mỗi bảng được sử dụng cho một loại thực thể khác nhau. Chỉ vào giữa những năm 1980, phần cứng máy tính đã trở nên đủ mạnh để cho phép triển khai rộng rãi các hệ thống quan hệ (DBMS cộng với các ứng dụng). Tuy nhiên, vào đầu những năm 1990, các hệ thống quan hệ chiếm ưu thế trong tất cả các ứng dụng xử lý dữ liệu quy mô lớn và chúng vẫn chiếm ưu thế: IBM DB2, Oracle, MySQL và Microsoft SQL Server là DBMS được tìm kiếm nhiều nhất. Ngôn ngữ cơ sở dữ liệu thống trị, SQL được tiêu chuẩn hóa cho mô hình quan hệ, đã ảnh hưởng đến các ngôn ngữ cơ sở dữ liệu cho các mô hình dữ liệu khác. Cơ sở dữ liệu đối tượng được phát triển vào những năm 1980 để khắc phục sự bất tiện của sự không phù hợp trở kháng quan hệ đối tượng, dẫn đến việc đặt ra thuật ngữ "hậu quan hệ" và cũng là sự phát triển của cơ sở dữ liệu quan hệ đối tượng lai.
Thế hệ cơ sở dữ liệu hậu quan hệ tiếp theo vào cuối những năm 2000 được gọi là cơ sở dữ liệu NoQuery, giới thiệu các kho lưu trữ khóa giá trị nhanh và cơ sở dữ liệu định hướng tài liệu. Một "thế hệ tiếp theo" cạnh tranh được gọi là cơ sở dữ liệu NewQuery đã thử triển khai các mô hình mới giữ lại mô hình quan hệ / SQL trong khi hướng đến việc phù hợp với hiệu suất cao của NoQuery so với các DBMS quan hệ có sẵn trên thị trường.
Những năm 1960, DBMS hướng đối tượng.
Sự ra đời của thuật ngữ "cơ sở dữ liệu" trùng khớp với sự sẵn có của bộ lưu trữ truy cập trực tiếp (đĩa và trống) từ giữa những năm 1960 trở đi. Thuật ngữ này thể hiện sự tương phản với các hệ thống dựa trên băng từ trước đây, cho phép sử dụng tương tác được chia sẻ thay vì xử lý hàng ngày. Từ điển tiếng Anh Oxford trích dẫn một báo cáo năm 1962 của Tập đoàn phát triển hệ thống California là người đầu tiên sử dụng thuật ngữ "cơ sở dữ liệu" theo nghĩa kỹ thuật cụ thể.
Khi máy tính tăng trưởng về tốc độ và khả năng, một số hệ thống cơ sở dữ liệu đa năng đã xuất hiện; vào giữa những năm 1960, một số hệ thống như vậy đã được đưa vào sử dụng thương mại. Sự quan tâm đến một tiêu chuẩn bắt đầu tăng lên và Charles Bachman, tác giả của một sản phẩm như vậy, Kho dữ liệu tích hợp (IDS), đã thành lập "Nhóm nhiệm vụ cơ sở dữ liệu" trong CODASYL, nhóm chịu trách nhiệm tạo và chuẩn hóa COBOL. Năm 1971, Nhóm Nhiệm vụ Cơ sở dữ liệu đã đưa ra tiêu chuẩn của họ, thường được gọi là "phương pháp CODASYL", và ngay sau đó, một số sản phẩm thương mại dựa trên phương pháp này đã được đưa vào thị trường.
Cách tiếp cận CODASYL dựa trên hướng đối tượng "thủ công" của tập dữ liệu được liên kết được tạo thành một mạng lớn. Các ứng dụng có thể tìm thấy các bản ghi theo một trong ba phương pháp:
Các hệ thống sau này đã thêm cây B để cung cấp các đường dẫn truy cập thay thế. Nhiều cơ sở dữ liệu CODASYL cũng đã thêm một ngôn ngữ truy vấn rất đơn giản. Tuy nhiên, trong lần kiểm tra cuối cùng, CODASYL rất phức tạp và cần được đào tạo và nỗ lực đáng kể để tạo ra các ứng dụng hữu ích.
IBM cũng có DBMS của riêng họ vào năm 1966, được gọi là Hệ thống quản lý thông tin (IMS). IMS là sự phát triển của phần mềm được viết cho chương trình Apollo trên System/360. IMS nói chung tương tự khái niệm với CODASYL, nhưng đã sử dụng một hệ thống phân cấp chặt chẽ cho mô hình hướng đối tượng dữ liệu thay vì mô hình mạng của CODASYL. Cả hai khái niệm này sau đó được gọi là cơ sở dữ liệu hướng đối tượng do cách truy cập dữ liệu và bài thuyết trình Turing Award năm 1973 của Bachman là "The Programmer as Navigator". IMS được phân loại như một cơ sở dữ liệu phân cấp. Cơ sở dữ liệu TOTAL của IDMS và Cincom Systems được phân loại là cơ sở dữ liệu mạng. IMS vẫn được sử dụng .
Những năm 1970, DBMS quan hệ.
Edgar Codd làm việc tại IBM ở San Jose, California, tại một trong những văn phòng của họ, chủ yếu liên quan đến việc phát triển các hệ thống đĩa cứng. Ông không hài lòng với mô hình hướng đối tượng của phương pháp CODASYL, đáng chú ý là thiếu cơ sở "tìm kiếm". Năm 1970, ông đã viết một số bài báo phác thảo một cách tiếp cận mới để xây dựng cơ sở dữ liệu mà cuối cùng đã đạt đến đỉnh cao trong bài "A Relational Model of Data for Large Shared Data Banks".
Trong bài báo này, ông đã mô tả một hệ thống mới để lưu trữ và làm việc với các cơ sở dữ liệu lớn. Thay vì các bản ghi được lưu trữ trong một số loại danh sách các bản ghi dạng tự do được liên kết như trong CODASYL, ý tưởng của Codd là sử dụng " bảng " các bản ghi có độ dài cố định, với mỗi bảng được sử dụng cho một loại thực thể khác nhau. Một hệ thống danh sách liên kết sẽ rất kém hiệu quả khi lưu trữ cơ sở dữ liệu "thưa thớt" trong đó một số dữ liệu cho bất kỳ một bản ghi nào có thể bị bỏ trống. Mô hình quan hệ đã giải quyết điều này bằng cách chia dữ liệu thành một loạt các bảng (hoặc "quan hệ") được chuẩn hóa, với các phần tử tùy chọn được chuyển ra khỏi bảng chính đến nơi chúng chỉ chiếm phòng nếu cần. Dữ liệu có thể được chèn, xóa và chỉnh sửa tự do trong các bảng này, với DBMS thực hiện bất kỳ bảo trì nào cần thiết để hiển thị chế độ xem bảng cho ứng dụng / người dùng. 
Mô hình quan hệ cũng cho phép nội dung của cơ sở dữ liệu phát triển mà không cần viết lại liên kết và con trỏ. Phần quan hệ xuất phát từ các thực thể tham chiếu các thực thể khác trong mối quan hệ được gọi là mối quan hệ một-nhiều, như mô hình phân cấp truyền thống và mối quan hệ nhiều-nhiều, như mô hình hướng đối tượng (mạng). Do đó, một mô hình quan hệ có thể biểu thị cả mô hình phân cấp và hướng đối tượng, cũng như mô hình bảng gốc của nó, cho phép mô hình thuần túy hoặc kết hợp theo ba mô hình này, như ứng dụng yêu cầu.
Ví dụ, việc sử dụng phổ biến hệ thống cơ sở dữ liệu là theo dõi thông tin về người dùng, tên, thông tin đăng nhập, địa chỉ và số điện thoại khác nhau. Theo cách tiếp cận hướng đối tượng, tất cả các dữ liệu này sẽ được đặt trong một bản ghi và các mục không sử dụng sẽ không được đặt trong cơ sở dữ liệu. Theo cách tiếp cận quan hệ, dữ liệu sẽ được "chuẩn hóa" thành bảng người dùng, bảng địa chỉ và bảng số điện thoại (ví dụ). Bản ghi sẽ được tạo trong các bảng tùy chọn này chỉ khi địa chỉ hoặc số điện thoại thực sự được cung cấp.
Liên kết thông tin lại với nhau là chìa khóa cho hệ thống này. Trong mô hình quan hệ, một số thông tin được sử dụng làm "khóa", xác định duy nhất một bản ghi cụ thể. Khi thông tin được thu thập về người dùng, thông tin được lưu trữ trong các bảng tùy chọn sẽ được tìm thấy bằng cách tìm kiếm khóa này. Chẳng hạn, nếu tên đăng nhập của người dùng là duy nhất, địa chỉ và số điện thoại của người dùng đó sẽ được ghi lại với tên đăng nhập làm khóa. Việc "liên kết lại" các dữ liệu liên quan trở lại thành một bộ sưu tập đơn giản là điều mà các ngôn ngữ máy tính truyền thống không được thiết kế cho.
Giống như cách tiếp cận hướng đối tượng sẽ yêu cầu các chương trình lặp để thu thập các bản ghi, phương pháp quan hệ sẽ yêu cầu các vòng lặp để thu thập thông tin về bất kỳ "một" bản ghi nào. Các đề xuất của Codd là một ngôn ngữ được định hướng theo tập hợp, sau này sẽ sinh ra SQL phổ biến. Sử dụng một nhánh toán học được gọi là tính toán tuple, ông đã chứng minh rằng một hệ thống như vậy có thể hỗ trợ tất cả các hoạt động của cơ sở dữ liệu thông thường (chèn, cập nhật, v.v.) cũng như cung cấp một hệ thống đơn giản để tìm và trả về "các tập hợp" dữ liệu trong một thao tác.
Bài báo của Codd đã được hai người tại Berkeley, Eugene Wong và Michael Stonebraker chú ý. Họ đã bắt đầu một dự án được gọi là INGRES bằng cách sử dụng nguồn vốn đã được phân bổ cho một dự án cơ sở dữ liệu địa lý và các lập trình viên sinh viên để tạo mã. Bắt đầu từ năm 1973, INGRES đã cung cấp các sản phẩm thử nghiệm đầu tiên thường sẵn sàng để sử dụng rộng rãi vào năm 1979. INGRES tương tự như System R theo một số cách, bao gồm cả việc sử dụng "ngôn ngữ" để truy cập dữ liệu, được gọi là QUEL. Theo thời gian, INGRES chuyển sang tiêu chuẩn SQL mới nổi.
Bản thân IBM đã thực hiện một thử nghiệm thực hiện mô hình quan hệ, PRTV và một mô hình sản xuất, Business System 12, cả hai đều đã ngừng hoạt động. Honeywell đã viết MRDS cho Multics, và bây giờ có hai triển khai mới: Alphora Dataphor và Rel. Hầu hết các triển khai DBMS khác thường được gọi là "quan hệ" thực sự là các DBMS SQL.
Năm 1970, Đại học Michigan đã bắt đầu phát triển Hệ thống quản lý thông tin MICRO dựa trên mô hình Dữ liệu lý thuyết tập hợp của DL Childs. MICRO đã được sử dụng để quản lý các tập dữ liệu rất lớn bởi Bộ Lao động Mỹ, Cục Bảo vệ Môi trường Mỹ, và các nhà nghiên cứu từ Đại học Alberta, trường Đại học Michigan, và trường Đại học Wayne State. Nó chạy trên các máy tính lớn của IBM sử dụng Hệ thống đầu cuối Michigan. Hệ thống vẫn được sử dụng cho đến năm 1998.
Phương pháp tích hợp.
Trong những năm 1970 và 1980, các nỗ lực đã được thực hiện để xây dựng các hệ thống cơ sở dữ liệu với phần cứng và phần mềm tích hợp. Triết lý cơ bản là sự tích hợp như vậy sẽ cung cấp hiệu suất cao hơn với chi phí thấp hơn. Ví dụ là IBM System / 38, việc cung cấp Teradata sớm và máy cơ sở dữ liệu Britton Lee, Inc.
Một cách tiếp cận khác để hỗ trợ phần cứng cho quản lý cơ sở dữ liệu là bộ tăng tốc CAFS của ICL, bộ điều khiển đĩa phần cứng với khả năng tìm kiếm được lập trình. Về lâu dài, những nỗ lực này thường không thành công vì các máy cơ sở dữ liệu chuyên dụng không thể theo kịp sự phát triển và tiến bộ nhanh chóng của các máy tính đa năng. Do đó, hầu hết các hệ thống cơ sở dữ liệu hiện nay là các hệ thống phần mềm chạy trên phần cứng đa năng, sử dụng lưu trữ dữ liệu máy tính đa năng. Tuy nhiên, ý tưởng này vẫn được một số công ty như Netezza và Oracle (Exadata) theo đuổi.
Cuối những năm 1970, SQL DBMS.
IBM bắt đầu làm việc trên một hệ thống nguyên mẫu dựa trên các khái niệm của Codd là "System R" vào đầu những năm 1970. Phiên bản đầu tiên đã sẵn sàng vào năm 1974/5 và sau đó bắt đầu hoạt động trên các hệ thống nhiều bảng trong đó dữ liệu có thể được phân tách để tất cả dữ liệu cho một bản ghi (một số trong đó là tùy chọn) không phải được lưu trữ trong một "chunk" lớn. Các phiên bản đa người dùng sau đó đã được khách hàng thử nghiệm vào năm 1978 và 1979, vào thời điểm đó, một ngôn ngữ truy vấn được tiêu chuẩn hóa - SQL - đã được thêm vào. Các ý tưởng của Codd đã tự thiết lập cả khả thi và vượt trội so với CODASYL, thúc đẩy IBM phát triển một phiên bản sản xuất thực sự của System R, được gọi là "SQL/DS", và sau đó là "Database 2" (DB2).
Cơ sở dữ liệu Oracle của Larry Ellison (hay đơn giản hơn là Oracle) bắt đầu từ một chuỗi khác, dựa trên các tài liệu của IBM về Hệ thống R. Mặc dù việc triển khai Oracle V1 đã được hoàn thành vào năm 1978, nhưng mãi đến khi Oracle Phiên bản 2 đánh bại IBM trên thị trường vào năm 1979.
Stonoplker tiếp tục áp dụng các bài học từ INGRES để phát triển cơ sở dữ liệu mới, Postgres, hiện được gọi là PostgreQuery. PostgreSQL thường được sử dụng cho các ứng dụng quan trọng toàn cầu (các cơ quan đăng ký tên miền.org và.info sử dụng nó làm kho lưu trữ dữ liệu chính của họ, cũng như nhiều công ty lớn và tổ chức tài chính).
Ở Thụy Điển, bài báo của Codd cũng được đọc và Mimer SQL được phát triển từ giữa những năm 1970 tại Đại học Uppsala. Năm 1984, dự án này được hợp nhất thành một doanh nghiệp độc lập.
Một mô hình dữ liệu khác, mô hình quan hệ thực thể, xuất hiện vào năm 1976 và đã trở nên phổ biến cho thiết kế cơ sở dữ liệu vì nó nhấn mạnh một mô tả quen thuộc hơn so với mô hình quan hệ trước đó. Sau đó, các cấu trúc mối quan hệ thực thể được trang bị thêm như một cấu trúc mô hình dữ liệu cho mô hình quan hệ và sự khác biệt giữa hai cấu trúc đã trở nên không liên quan.
Những năm 1980, trên máy tính để bàn.
Những năm 1980 mở ra thời đại của máy tính để bàn. Các máy tính mới trao quyền cho người dùng của họ với các bảng tính như Lotus 1-2-3 và phần mềm cơ sở dữ liệu như dBASE. Sản phẩm dBASE rất nhẹ và dễ dàng cho bất kỳ người dùng máy tính nào hiểu được. C. Wayne Ratliff, người tạo ra dBASE, đã tuyên bố: "dBASE khác với các chương trình như BASIC, C, FORTRAN và COBOL ở chỗ rất nhiều công việc bẩn thỉu đã được thực hiện. Thao tác dữ liệu được thực hiện bởi dBASE thay vì người dùng, vì vậy người dùng có thể tập trung vào những gì anh ta đang làm, thay vì phải làm rối với các chi tiết bẩn của việc mở, đọc và đóng tệp và quản lý phân bổ không gian. " dBASE là một trong những phần mềm bán chạy hàng đầu trong những năm 1980 và đầu những năm 1990.
Những năm 1990, hướng đối tượng.
Những năm 1990, cùng với sự gia tăng trong lập trình hướng đối tượng, đã chứng kiến sự tăng trưởng về cách xử lý dữ liệu trong các cơ sở dữ liệu khác nhau. Các lập trình viên và nhà thiết kế bắt đầu coi dữ liệu trong cơ sở dữ liệu của họ là đối tượng. Điều đó có nghĩa là nếu dữ liệu của một người nằm trong cơ sở dữ liệu, các thuộc tính của người đó, như địa chỉ, số điện thoại và tuổi của họ, giờ đây được coi là thuộc về người đó thay vì dữ liệu không liên quan. Điều này cho phép các mối quan hệ giữa dữ liệu là quan hệ với các đối tượng và thuộc tính của chúng chứ không phải cho các trường riêng lẻ. Thuật ngữ " không khớp trở kháng quan hệ đối tượng " đã mô tả sự bất tiện của việc dịch giữa các đối tượng được lập trình và các bảng cơ sở dữ liệu. Cơ sở dữ liệu đối tượng và cơ sở dữ liệu quan hệ đối tượng cố gắng giải quyết vấn đề này bằng cách cung cấp ngôn ngữ hướng đối tượng (đôi khi là phần mở rộng cho SQL) mà các lập trình viên có thể sử dụng thay thế cho SQL hoàn toàn quan hệ. Về phía lập trình, các thư viện được gọi là ánh xạ quan hệ đối tượng (ORM) cố gắng giải quyết vấn đề tương tự.
Những năm 2000, NoSQL và NewSQL.
Cơ sở dữ liệu XML là một loại cơ sở dữ liệu hướng tài liệu có cấu trúc, cho phép truy vấn dựa trên các thuộc tính tài liệu XML. Cơ sở dữ liệu XML chủ yếu được sử dụng trong các ứng dụng mà dữ liệu được xem thuận tiện dưới dạng tập hợp tài liệu, với cấu trúc có thể thay đổi từ rất linh hoạt đến rất cứng nhắc: ví dụ bao gồm các bài báo khoa học, bằng sáng chế, hồ sơ thuế và hồ sơ nhân sự.
Cơ sở dữ liệu NoSQL thường rất nhanh, không yêu cầu lược đồ bảng cố định, tránh các hoạt động tham gia bằng cách lưu trữ dữ liệu không chuẩn hóa và được thiết kế để mở rộng theo chiều ngang.
Trong những năm gần đây, có nhu cầu lớn về cơ sở dữ liệu phân tán ồ ạt với dung sai phân vùng cao, nhưng theo định lý CAP, hệ thống phân tán không thể đồng thời cung cấp sự đảm bảo tính nhất quán, tính sẵn sàng và phân vùng. Một hệ thống phân tán có thể đáp ứng bất kỳ hai trong số các bảo đảm này cùng một lúc, nhưng không phải cả ba. Vì lý do đó, nhiều cơ sở dữ liệu NoSQL đang sử dụng cái được gọi là tính nhất quán cuối cùng để cung cấp cả đảm bảo dung sai phân vùng và tính sẵn sàng với mức độ thống nhất dữ liệu giảm.
NewSQL là một lớp cơ sở dữ liệu quan hệ hiện đại nhằm cung cấp hiệu năng có thể mở rộng tương tự của các hệ thống NoQuery để xử lý khối lượng công việc xử lý giao dịch trực tuyến (đọc-ghi) trong khi vẫn sử dụng SQL và duy trì bảo đảm ACID của hệ thống cơ sở dữ liệu truyền thống.
Trường hợp sử dụng.
Cơ sở dữ liệu được sử dụng để hỗ trợ các hoạt động nội bộ của các tổ chức và để củng cố các tương tác trực tuyến với khách hàng và nhà cung cấp (xem phần mềm Doanh nghiệp).
Cơ sở dữ liệu được sử dụng để chứa thông tin quản trị và dữ liệu chuyên ngành hơn, chẳng hạn như dữ liệu kỹ thuật hoặc mô hình kinh tế. Ví dụ bao gồm hệ thống thư viện máy tính, hệ thống đặt chỗ chuyến bay, hệ thống kiểm kê bộ phận máy tính và nhiều hệ thống quản lý nội dung lưu trữ các trang web dưới dạng bộ sưu tập các trang web trong cơ sở dữ liệu.
Phân loại.
Một cách để phân loại cơ sở dữ liệu liên quan đến loại nội dung của chúng, ví dụ: thư mục, tài liệu văn bản, thống kê hoặc đối tượng đa phương tiện. Một cách khác là theo lĩnh vực ứng dụng của họ, ví dụ: kế toán, sáng tác nhạc, phim ảnh, ngân hàng, sản xuất hoặc bảo hiểm. Cách thứ ba là theo một số khía cạnh kỹ thuật, chẳng hạn như cấu trúc cơ sở dữ liệu hoặc loại giao diện. Phần này liệt kê một số tính từ được sử dụng để mô tả các loại cơ sở dữ liệu khác nhau.
Tương tác cơ sở dữ liệu.
Hệ thống quản lý cơ sở dữ liệu.
Connolly và Begg định nghĩa Hệ thống quản lý cơ sở dữ liệu (DBMS) là một "hệ thống phần mềm cho phép người dùng xác định, tạo, duy trì và kiểm soát truy cập vào cơ sở dữ liệu".
Từ viết tắt DBMS đôi khi được mở rộng để chỉ ra mô hình cơ sở dữ liệu cơ bản, với RDBMS cho mô hình quan hệ, OODBMS hoặc ORDBMS cho mô hình đối tượng (định hướng) và ORDBMS cho Quan hệ đối tượng. Các phần mở rộng khác có thể chỉ ra một số đặc điểm khác, chẳng hạn như DDBMS cho hệ thống quản lý cơ sở dữ liệu phân tán.
Các chức năng được cung cấp bởi một DBMS có thể rất khác nhau. Chức năng cốt lõi là lưu trữ, truy xuất và cập nhật dữ liệu. Codd đề xuất các chức năng và dịch vụ sau đây, DBMS có mục đích chung được cung cấp đầy đủ: 
Nhìn chung, DBMS sẽ cung cấp một bộ các tiện ích cho các mục đích như vậy có thể cần thiết để quản trị cơ sở dữ liệu một cách hiệu quả, bao gồm các tiện ích nhập, xuất, giám sát, phân mảnh và phân tích. Phần cốt lõi của DBMS tương tác giữa cơ sở dữ liệu và giao diện ứng dụng đôi khi được gọi là công cụ cơ sở dữ liệu.
Thông thường các DBMS sẽ có các tham số cấu hình có thể được điều chỉnh tĩnh và động, ví dụ: lượng bộ nhớ chính tối đa trên máy chủ mà cơ sở dữ liệu có thể sử dụng. Xu hướng là giảm thiểu số lượng cấu hình thủ công và đối với các trường hợp như cơ sở dữ liệu nhúng, nhu cầu nhắm mục tiêu quản trị tự động là tối quan trọng.
Các DBMS doanh nghiệp lớn có xu hướng tăng kích thước và chức năng và có thể liên quan đến hàng ngàn năm nỗ lực phát triển của con người trong suốt cuộc đời của họ.
DBMS nhiều người dùng sớm thường chỉ cho phép ứng dụng cư trú trên cùng một máy tính có quyền truy cập thông qua thiết bị đầu cuối hoặc phần mềm mô phỏng thiết bị đầu cuối. Kiến trúc máy chủ của máy khách là một sự phát triển trong đó ứng dụng nằm trên màn hình máy khách và cơ sở dữ liệu trên máy chủ cho phép xử lý được phân phối. Điều này phát triển thành một kiến trúc đa nhiệm kết hợp các máy chủ ứng dụng và máy chủ web với giao diện người dùng cuối thông qua trình duyệt web với cơ sở dữ liệu chỉ được kết nối trực tiếp với tầng liền kề.
DBMS có mục đích chung sẽ cung cấp các giao diện lập trình ứng dụng công cộng (API) và tùy chọn bộ xử lý cho các ngôn ngữ cơ sở dữ liệu như SQL để cho phép các ứng dụng được viết để tương tác với cơ sở dữ liệu. DBMS có mục đích đặc biệt có thể sử dụng API riêng và được tùy chỉnh và liên kết cụ thể với một ứng dụng. Ví dụ, một hệ thống email thực hiện nhiều chức năng của DBMS có mục đích chung như chèn tin nhắn, xóa tin nhắn, xử lý tệp đính kèm, tra cứu danh sách chặn, liên kết tin nhắn một địa chỉ email, v.v..
Ứng dụng.
Tương tác bên ngoài với cơ sở dữ liệu sẽ thông qua một chương trình ứng dụng có giao diện với DBMS. Điều này có thể bao gồm từ một công cụ cơ sở dữ liệu cho phép người dùng thực hiện các truy vấn SQL bằng văn bản hoặc bằng đồ họa, đến một trang web tình cờ sử dụng cơ sở dữ liệu để lưu trữ và tìm kiếm thông tin.
Giao diện chương trình ứng dụng.
Một lập trình viên sẽ lập trình các tương tác vào cơ sở dữ liệu (đôi khi được gọi là nguồn dữ liệu) thông qua giao diện chương trình ứng dụng (API) hoặc thông qua ngôn ngữ cơ sở dữ liệu. API hoặc ngôn ngữ cụ thể được chọn sẽ cần được DBMS hỗ trợ, có thể gián tiếp thông qua bộ xử lý trước hoặc API bắc cầu. Một số API nhằm mục đích độc lập với cơ sở dữ liệu, ODBC là một ví dụ thường được biết đến. Các API phổ biến khác bao gồm JDBC và ADO.NET.
Ngôn ngữ cơ sở dữ liệu.
Ngôn ngữ cơ sở dữ liệu là ngôn ngữ có mục đích đặc biệt, cho phép một hoặc nhiều tác vụ sau, đôi khi được phân biệt là ngôn ngữ con:
Ngôn ngữ cơ sở dữ liệu là cụ thể cho một mô hình dữ liệu cụ thể. Các ví dụ đáng chú ý bao gồm:
Một ngôn ngữ cơ sở dữ liệu cũng có thể kết hợp các tính năng như:
Lưu trữ.
Lưu trữ cơ sở dữ liệu là nơi chứa vật chất hóa vật lý của cơ sở dữ liệu. Nó bao gồm "mức độ" "nội bộ" (vật lý) trong kiến trúc cơ sở dữ liệu. Nó cũng chứa tất cả thông tin cần thiết (ví dụ: siêu dữ liệu, "dữ liệu về dữ liệu" và cấu trúc dữ liệu bên trong) để tái cấu trúc "mức khái niệm" và "cấp độ bên ngoài" từ cấp độ bên trong khi cần. Đưa dữ liệu vào lưu trữ vĩnh viễn nói chung là trách nhiệm của công cụ cơ sở dữ liệu hay còn gọi là "công cụ lưu trữ". Mặc dù DBMS thường truy cập thông qua hệ điều hành cơ bản (và thường sử dụng các hệ thống tệp của hệ điều hành làm trung gian để bố trí lưu trữ), các thuộc tính lưu trữ và cài đặt cấu hình là cực kỳ quan trọng đối với hoạt động hiệu quả của DBMS và do đó được duy trì chặt chẽ bởi quản trị cơ sở dữ liệu. Một DBMS, trong khi hoạt động, luôn có cơ sở dữ liệu của nó nằm trong một số loại lưu trữ (ví dụ: bộ nhớ và bộ nhớ ngoài). Dữ liệu cơ sở dữ liệu và thông tin cần thiết bổ sung, có thể với số lượng rất lớn, được mã hóa thành các bit. Dữ liệu thường nằm trong bộ lưu trữ trong các cấu trúc trông hoàn toàn khác với cách dữ liệu nhìn ở cấp độ khái niệm và bên ngoài, nhưng theo cách cố gắng tối ưu hóa (tốt nhất có thể) các cấu trúc này khi người dùng và chương trình cũng cần như để tính toán các loại thông tin cần thiết từ dữ liệu (ví dụ: khi truy vấn cơ sở dữ liệu).
Một số DBMS hỗ trợ chỉ định mã hóa ký tự nào được sử dụng để lưu trữ dữ liệu, do đó, nhiều mã hóa có thể được sử dụng trong cùng một cơ sở dữ liệu.
Các cấu trúc lưu trữ cơ sở dữ liệu mức thấp khác nhau được sử dụng bởi công cụ lưu trữ để tuần tự hóa mô hình dữ liệu để nó có thể được ghi vào phương tiện lựa chọn. Các kỹ thuật như lập chỉ mục có thể được sử dụng để cải thiện hiệu suất. Lưu trữ thông thường là theo định hướng hàng, nhưng cũng có cơ sở dữ liệu tương quan và định hướng cột.
Quan điểm cụ thể hóa.
Thường dự phòng lưu trữ được sử dụng để tăng hiệu suất. Một ví dụ phổ biến là lưu trữ "các khung nhìn cụ thể hóa", bao gồm các "khung nhìn bên ngoài" hoặc kết quả truy vấn thường xuyên cần thiết. Lưu trữ các quan điểm như vậy giúp tiết kiệm điện toán đắt tiền của chúng mỗi khi chúng cần thiết. Nhược điểm của các khung nhìn cụ thể hóa là chi phí phát sinh khi cập nhật chúng để giữ cho chúng được đồng bộ hóa với dữ liệu cơ sở dữ liệu được cập nhật ban đầu của chúng và chi phí dự phòng lưu trữ.
Sao chép nhân rộng.
Đôi khi, cơ sở dữ liệu sử dụng dự phòng lưu trữ bằng cách sao chép đối tượng cơ sở dữ liệu (có một hoặc nhiều bản sao) để tăng tính khả dụng của dữ liệu (cả hai để cải thiện hiệu suất của nhiều người dùng cuối truy cập vào cùng một đối tượng cơ sở dữ liệu và để cung cấp khả năng phục hồi trong trường hợp không thành công một cơ sở dữ liệu phân tán). Cập nhật của một đối tượng được nhân rộng cần phải được đồng bộ hóa trên các bản sao đối tượng. Trong nhiều trường hợp, toàn bộ cơ sở dữ liệu được nhân rộng.
Bảo mật.
Bảo mật cơ sở dữ liệu liên quan đến tất cả các khía cạnh khác nhau của việc bảo vệ nội dung cơ sở dữ liệu, chủ sở hữu và người dùng của nó. Nó bao gồm từ bảo vệ khỏi việc sử dụng cơ sở dữ liệu trái phép có chủ ý đến cơ sở dữ liệu vô tình truy cập bởi các thực thể trái phép (ví dụ: một người hoặc một chương trình máy tính).
Kiểm soát truy cập cơ sở dữ liệu liên quan đến việc kiểm soát ai (một người hoặc một chương trình máy tính nhất định) được phép truy cập thông tin nào trong cơ sở dữ liệu. Thông tin có thể bao gồm các đối tượng cơ sở dữ liệu cụ thể (vd hoặc các cấu trúc dữ liệu khác để truy cập thông tin). Các điều khiển truy cập cơ sở dữ liệu được thiết lập bởi nhân viên được ủy quyền đặc biệt (bởi chủ sở hữu cơ sở dữ liệu) sử dụng các giao diện DBMS bảo mật chuyên dụng được bảo vệ.
Điều này có thể được quản lý trực tiếp trên cơ sở cá nhân, hoặc bằng cách phân công các cá nhân và đặc quyền cho các nhóm, hoặc (trong các mô hình phức tạp nhất) thông qua việc phân công các cá nhân và nhóm cho các vai trò sau đó được cấp quyền. Bảo mật dữ liệu ngăn người dùng trái phép xem hoặc cập nhật cơ sở dữ liệu. Sử dụng mật khẩu, người dùng được phép truy cập vào toàn bộ cơ sở dữ liệu hoặc các tập hợp con của nó được gọi là "các bộ phận con". Ví dụ: cơ sở dữ liệu nhân viên có thể chứa tất cả dữ liệu về một nhân viên, nhưng một nhóm người dùng có thể được phép chỉ xem dữ liệu bảng lương, trong khi những người khác chỉ được phép truy cập vào lịch sử làm việc và dữ liệu y tế. Nếu DBMS cung cấp một cách để tương tác nhập và cập nhật cơ sở dữ liệu, cũng như thẩm vấn nó, khả năng này cho phép quản lý cơ sở dữ liệu cá nhân.
Bảo mật dữ liệu nói chung liên quan đến việc bảo vệ các khối dữ liệu cụ thể, cả về mặt vật lý (nghĩa là khỏi tham nhũng, hoặc phá hủy hoặc xóa; ví dụ: xem bảo mật vật lý) hoặc giải thích chúng hoặc các phần của chúng đối với thông tin có ý nghĩa (ví dụ: nhìn vào chuỗi bit mà chúng bao gồm, kết luận số thẻ tín dụng hợp lệ cụ thể, ví dụ: xem mã hóa dữ liệu).
Thay đổi và truy cập các bản ghi nhật ký những người đã truy cập thuộc tính nào, những gì đã được thay đổi và khi nó được thay đổi. Dịch vụ ghi nhật ký cho phép kiểm tra cơ sở dữ liệu pháp y sau đó bằng cách lưu giữ hồ sơ về các lần xuất hiện và thay đổi truy cập. Đôi khi mã cấp độ ứng dụng được sử dụng để ghi lại các thay đổi thay vì để mã này vào cơ sở dữ liệu. Giám sát có thể được thiết lập để cố gắng phát hiện các vi phạm an ninh.
Giao dịch và xử lý giao dịch đồng thời.
Các giao dịch cơ sở dữ liệu có thể được sử dụng để giới thiệu một số mức độ chịu lỗi và tính toàn vẹn dữ liệu sau khi phục hồi sau sự cố. Giao dịch cơ sở dữ liệu là một đơn vị công việc, thường đóng gói một số hoạt động trên cơ sở dữ liệu (ví dụ: đọc đối tượng cơ sở dữ liệu, viết, lấy khóa, v.v.), một sự trừu tượng được hỗ trợ trong cơ sở dữ liệu và các hệ thống khác. Mỗi giao dịch có các ranh giới được xác định rõ về mặt thực thi chương trình / mã được bao gồm trong giao dịch đó (được xác định bởi người lập trình giao dịch thông qua các lệnh giao dịch đặc biệt).
Từ viết tắt ACID mô tả một số tính chất lý tưởng của giao dịch cơ sở dữ liệu: tính nguyên tử, tính nhất quán, sự cô lập và độ bền.
Di chuyển.
Một cơ sở dữ liệu được xây dựng với một DBMS không thể di chuyển sang một DBMS khác (nghĩa là DBMS khác không thể chạy nó). Tuy nhiên, trong một số tình huống, mong muốn di chuyển, di chuyển cơ sở dữ liệu từ DBMS này sang DBMS khác. Các lý do chủ yếu là kinh tế (các DBMS khác nhau có thể có tổng chi phí sở hữu hoặc TCO khác nhau), chức năng và hoạt động (các DBMS khác nhau có thể có các khả năng khác nhau). Việc di chuyển liên quan đến việc chuyển đổi cơ sở dữ liệu từ loại DBMS này sang loại khác. Việc chuyển đổi phải duy trì (nếu có thể) các ứng dụng liên quan đến cơ sở dữ liệu (nghĩa là tất cả các chương trình ứng dụng liên quan) còn nguyên vẹn. Do đó, các mức kiến trúc bên ngoài và khái niệm của cơ sở dữ liệu nên được duy trì trong quá trình chuyển đổi. Có thể mong muốn rằng một số khía cạnh của cấp độ kiến trúc được duy trì. Di chuyển cơ sở dữ liệu phức tạp hoặc lớn có thể là một dự án phức tạp và tốn kém (một lần), điều này cần được đưa vào quyết định di chuyển. Điều này mặc dù thực tế là các công cụ có thể tồn tại để giúp di chuyển giữa các DBMS cụ thể. Thông thường, nhà cung cấp DBMS cung cấp các công cụ để giúp nhập cơ sở dữ liệu từ các DBMS phổ biến khác.
Xây dựng, bảo trì và điều chỉnh.
Sau khi thiết kế cơ sở dữ liệu cho một ứng dụng, giai đoạn tiếp theo là xây dựng cơ sở dữ liệu. Thông thường, một DBMS có mục đích chung thích hợp có thể được chọn để sử dụng cho mục đích này. DBMS cung cấp các giao diện người dùng cần thiết được sử dụng bởi các quản trị viên cơ sở dữ liệu để xác định cấu trúc dữ liệu của ứng dụng cần thiết trong mô hình dữ liệu tương ứng của DBMS. Các giao diện người dùng khác được sử dụng để chọn các tham số DBMS cần thiết (như liên quan đến bảo mật, tham số phân bổ lưu trữ, v.v.).
Khi cơ sở dữ liệu đã sẵn sàng (tất cả các cấu trúc dữ liệu và các thành phần cần thiết khác được xác định), nó thường được điền với dữ liệu của ứng dụng ban đầu (khởi tạo cơ sở dữ liệu, thường là một dự án riêng biệt; trong nhiều trường hợp sử dụng giao diện DBMS chuyên dụng hỗ trợ chèn hàng loạt) trước đó làm cho nó hoạt động. Trong một số trường hợp, cơ sở dữ liệu sẽ hoạt động trong khi trống dữ liệu ứng dụng và dữ liệu được tích lũy trong quá trình hoạt động.
Sau khi cơ sở dữ liệu được tạo, khởi tạo và điền vào nó cần được duy trì. Các tham số cơ sở dữ liệu khác nhau có thể cần thay đổi và cơ sở dữ liệu có thể cần được điều chỉnh (điều chỉnh) để có hiệu suất tốt hơn; cấu trúc dữ liệu của ứng dụng có thể được thay đổi hoặc thêm vào, các chương trình ứng dụng liên quan mới có thể được viết để thêm vào chức năng của ứng dụng, v.v.
Sao lưu và khôi phục.
Đôi khi, mong muốn đưa cơ sở dữ liệu trở về trạng thái trước đó (vì nhiều lý do, ví dụ: các trường hợp khi phát hiện cơ sở dữ liệu bị lỗi do lỗi phần mềm hoặc nếu nó đã được cập nhật với dữ liệu bị lỗi). Để đạt được điều này, một hoạt động sao lưu được thực hiện đôi khi hoặc liên tục, trong đó mỗi trạng thái cơ sở dữ liệu mong muốn (nghĩa là các giá trị của dữ liệu và việc nhúng chúng vào cấu trúc dữ liệu của cơ sở dữ liệu) được giữ trong các tệp sao lưu chuyên dụng (có nhiều kỹ thuật để thực hiện điều này một cách hiệu quả). Khi trạng thái này là cần thiết, tức là khi người quản trị cơ sở dữ liệu quyết định đưa cơ sở dữ liệu trở lại trạng thái này (ví dụ: bằng cách chỉ định trạng thái này theo thời điểm mong muốn khi cơ sở dữ liệu ở trạng thái này), các tệp này được sử dụng để khôi phục trạng thái đó.
Phân tích tĩnh.
Các kỹ thuật phân tích tĩnh để xác minh phần mềm cũng có thể được áp dụng trong kịch bản của các ngôn ngữ truy vấn. Cụ thể, khung giải thích * Tóm tắt đã được mở rộng sang lĩnh vực ngôn ngữ truy vấn cho cơ sở dữ liệu quan hệ như một cách để hỗ trợ các kỹ thuật gần đúng âm thanh. Ngữ nghĩa của các ngôn ngữ truy vấn có thể được điều chỉnh theo sự trừu tượng phù hợp của miền dữ liệu cụ thể. Sự trừu tượng của hệ thống cơ sở dữ liệu quan hệ có nhiều ứng dụng thú vị, đặc biệt, cho mục đích bảo mật, chẳng hạn như kiểm soát truy cập chi tiết, hình mờ, v.v.
Các tính năng khác.
Các tính năng DBMS khác có thể bao gồm:
Ngày càng có nhiều lời kêu gọi cho một hệ thống duy nhất kết hợp tất cả các chức năng cốt lõi này vào cùng một khung xây dựng, kiểm tra và triển khai để quản lý cơ sở dữ liệu và kiểm soát nguồn. Mượn từ những phát triển khác trong ngành công nghiệp phần mềm, một số thị trường như " DevOps cho cơ sở dữ liệu".
Thiết kế và mô hình.
Nhiệm vụ đầu tiên của một nhà thiết kế cơ sở dữ liệu là tạo ra một mô hình dữ liệu khái niệm phản ánh cấu trúc của thông tin sẽ được lưu giữ trong cơ sở dữ liệu. Một cách tiếp cận phổ biến cho việc này là phát triển một mô hình quan hệ thực thể, thường với sự trợ giúp của các công cụ vẽ. Một cách tiếp cận phổ biến khác là Ngôn ngữ mô hình thống nhất. Một mô hình dữ liệu thành công sẽ phản ánh chính xác trạng thái có thể có của thế giới bên ngoài đang được mô hình hóa: ví dụ: nếu mọi người có thể có nhiều hơn một số điện thoại, nó sẽ cho phép nắm bắt thông tin này. Thiết kế một mô hình dữ liệu khái niệm tốt đòi hỏi sự hiểu biết tốt về miền ứng dụng; nó thường liên quan đến việc đặt câu hỏi sâu sắc về những điều mà một tổ chức quan tâm, như "khách hàng cũng có thể là nhà cung cấp không?" hoặc "nếu một sản phẩm được bán với hai hình thức đóng gói khác nhau, đó là cùng một sản phẩm hay sản phẩm khác nhau? "hoặc" nếu một chiếc máy bay bay từ New York đến Dubai qua Frankfurt, đó có phải là một hoặc hai chuyến bay (hoặc thậm chí là ba) không? ". Các câu trả lời cho những câu hỏi này thiết lập các định nghĩa về thuật ngữ được sử dụng cho các thực thể (khách hàng, sản phẩm, chuyến bay, phân khúc chuyến bay) và các mối quan hệ và thuộc tính của chúng.
Sản xuất mô hình dữ liệu khái niệm đôi khi liên quan đến đầu vào từ các quy trình kinh doanh hoặc phân tích quy trình công việc trong tổ chức. Điều này có thể giúp thiết lập những thông tin cần thiết trong cơ sở dữ liệu và những gì có thể bị bỏ lại. Ví dụ, nó có thể giúp khi quyết định liệu cơ sở dữ liệu có cần giữ dữ liệu lịch sử cũng như dữ liệu hiện tại hay không.
Đã tạo ra một mô hình dữ liệu khái niệm mà người dùng hài lòng, giai đoạn tiếp theo là dịch nó thành một lược đồ thực hiện các cấu trúc dữ liệu có liên quan trong cơ sở dữ liệu. Quá trình này thường được gọi là thiết kế cơ sở dữ liệu logic và đầu ra là một mô hình dữ liệu lôgic được thể hiện dưới dạng lược đồ. Trong khi mô hình dữ liệu khái niệm (về lý thuyết ít nhất) không phụ thuộc vào sự lựa chọn công nghệ cơ sở dữ liệu, mô hình dữ liệu lôgic sẽ được biểu thị theo mô hình cơ sở dữ liệu cụ thể được DBMS chọn. ("Mô hình dữ liệu" thuật ngữ và "mô hình" "cơ sở dữ liệu" thường được sử dụng thay thế cho nhau, nhưng trong bài viết này, chúng tôi sử dụng "mô hình dữ liệu" để thiết kế cơ sở dữ liệu cụ thể và "mô hình cơ sở dữ liệu" cho ký hiệu mô hình được sử dụng để thể hiện thiết kế đó.)
Mô hình cơ sở dữ liệu phổ biến nhất cho cơ sở dữ liệu đa năng là mô hình quan hệ, hay chính xác hơn là mô hình quan hệ được biểu thị bằng ngôn ngữ SQL. Quá trình tạo ra một thiết kế cơ sở dữ liệu logic bằng mô hình này sử dụng một phương pháp có phương pháp được gọi là chuẩn hóa. Mục tiêu của chuẩn hóa là đảm bảo rằng mỗi "thực tế" cơ bản chỉ được ghi lại ở một nơi, để các phần chèn, cập nhật và xóa tự động duy trì tính nhất quán.
Giai đoạn cuối cùng của thiết kế cơ sở dữ liệu là đưa ra các quyết định ảnh hưởng đến hiệu suất, khả năng mở rộng, phục hồi, bảo mật và tương tự, phụ thuộc vào DBMS cụ thể. Điều này thường được gọi là "thiết kế cơ sở dữ liệu vật lý" và đầu ra là mô hình dữ liệu vật lý. Mục tiêu chính trong giai đoạn này là tính độc lập dữ liệu, nghĩa là các quyết định được đưa ra cho mục đích tối ưu hóa hiệu suất sẽ vô hình đối với người dùng cuối và ứng dụng. Có hai loại độc lập dữ liệu: độc lập dữ liệu vật lý và độc lập dữ liệu logic. Thiết kế vật lý được điều khiển chủ yếu bởi các yêu cầu về hiệu suất và đòi hỏi kiến thức tốt về khối lượng công việc và các mẫu truy cập dự kiến và hiểu biết sâu sắc về các tính năng được cung cấp bởi DBMS đã chọn.
Một khía cạnh khác của thiết kế cơ sở dữ liệu vật lý là bảo mật. Nó bao gồm cả việc xác định kiểm soát truy cập cho các đối tượng cơ sở dữ liệu cũng như xác định các mức và phương thức bảo mật cho chính dữ liệu.
Mô hình.
Mô hình cơ sở dữ liệu là một loại mô hình dữ liệu xác định cấu trúc logic của cơ sở dữ liệu và xác định cơ bản theo cách thức dữ liệu có thể được lưu trữ, sắp xếp và thao tác. Ví dụ phổ biến nhất của mô hình cơ sở dữ liệu là mô hình quan hệ (hoặc xấp xỉ SQL của quan hệ), sử dụng định dạng dựa trên bảng.
Các mô hình dữ liệu logic phổ biến cho cơ sở dữ liệu bao gồm:
Một cơ sở dữ liệu quan hệ đối tượng kết hợp hai cấu trúc liên quan.
Các mô hình dữ liệu vật lý bao gồm:
Các mô hình khác bao gồm:
Các mô hình chuyên biệt được tối ưu hóa cho các loại dữ liệu cụ thể:
Cấp độ xem bên ngoài, khái niệm và nội bộ.
Một hệ thống quản lý cơ sở dữ liệu cung cấp ba khung nhìn của dữ liệu cơ sở dữ liệu:
Mặc dù thường chỉ có một chế độ xem khái niệm (hoặc logic) và vật lý (hoặc nội bộ) của dữ liệu, có thể có bất kỳ số lượt xem bên ngoài khác nhau. Điều này cho phép người dùng xem thông tin cơ sở dữ liệu theo cách liên quan đến kinh doanh hơn là từ quan điểm xử lý kỹ thuật. Ví dụ: bộ phận tài chính của một công ty cần chi tiết thanh toán của tất cả nhân viên như một phần chi phí của công ty, nhưng không cần chi tiết về nhân viên là mối quan tâm của bộ phận nhân sự. Do đó, các bộ phận khác nhau cần "quan điểm" khác nhau về cơ sở dữ liệu của công ty.
Kiến trúc cơ sở dữ liệu ba cấp liên quan đến khái niệm "độc lập dữ liệu", một trong những động lực ban đầu chính của mô hình quan hệ. Ý tưởng là những thay đổi được thực hiện ở một mức độ nhất định không ảnh hưởng đến chế độ xem ở cấp độ cao hơn. Ví dụ, các thay đổi ở cấp độ nội bộ không ảnh hưởng đến các chương trình ứng dụng được viết bằng giao diện cấp khái niệm, điều này làm giảm tác động của việc thực hiện các thay đổi vật lý để cải thiện hiệu suất.
Khung nhìn khái niệm cung cấp một mức độ gián tiếp giữa bên trong và bên ngoài. Một mặt, nó cung cấp một khung nhìn chung cho cơ sở dữ liệu, độc lập với các cấu trúc khung nhìn bên ngoài khác nhau và mặt khác, nó trừu tượng hóa các chi tiết về cách dữ liệu được lưu trữ hoặc quản lý (mức nội bộ). Về nguyên tắc, mọi cấp độ và thậm chí mọi chế độ xem bên ngoài đều có thể được trình bày bởi một mô hình dữ liệu khác nhau. Trong thực tế, một DBMS nhất định sử dụng cùng một mô hình dữ liệu cho cả mức độ bên ngoài và mức khái niệm (ví dụ: mô hình quan hệ). Cấp độ bên trong, được ẩn bên trong DBMS và phụ thuộc vào việc triển khai nó, đòi hỏi một mức độ chi tiết khác và sử dụng các loại cấu trúc dữ liệu riêng của nó.
Tách rời các cấp độ "bên ngoài", "khái niệm" và "bên trong" là một tính năng chính của việc triển khai mô hình cơ sở dữ liệu quan hệ thống trị cơ sở dữ liệu thế kỷ 21.
Nghiên cứu.
Công nghệ cơ sở dữ liệu là một chủ đề nghiên cứu tích cực từ những năm 1960, cả trong các học viện và trong các nhóm nghiên cứu và phát triển của các công ty (ví dụ như Nghiên cứu của IBM). Hoạt động nghiên cứu bao gồm lý thuyết và phát triển các nguyên mẫu. Các chủ đề nghiên cứu đáng chú ý đã bao gồm các mô hình, khái niệm giao dịch nguyên tử và các kỹ thuật kiểm soát đồng thời có liên quan, ngôn ngữ truy vấn và phương pháp tối ưu hóa truy vấn, RAID,v.v...
Khu vực nghiên cứu cơ sở dữ liệu có một số tạp chí học thuật chuyên dụng (ví dụ: "ACM Transactions on Database Systems" -TODS, "Data &amp; Knowledge Engineering" -DKE) và các hội nghị hàng năm (ví dụ: ACM SIGMOD, ACM PODS, VLDB, IEEE ICDE).