Cơ sở dữ liệu quan hệ là gì? [đóng cửa]


9

Tôi chủ yếu là quản trị viên hệ thống và tôi không trực tiếp làm việc với cơ sở dữ liệu ngoài việc cài đặt chúng, thiết lập tài khoản, cấp đặc quyền, v.v. Tôi nhận ra rằng nếu ông chủ đi đến chỗ tôi và hỏi: "Cơ sở dữ liệu quan hệ là gì?" Tôi có lẽ không thể đưa ra một câu trả lời thỏa đáng ... Tôi có thể lẩm bẩm điều gì đó về dữ liệu được lưu trữ và sắp xếp theo các danh mục mà bạn có thể truy vấn bằng ngôn ngữ lập trình đặc biệt (ví dụ: SQL).

Vì vậy, ai đó có thể đưa ra một "Câu trả lời của ông chủ" tốt cho cơ sở dữ liệu quan hệ là gì không? Và có lẽ nó khác với việc lưu trữ dữ liệu trên một máy chủ tập tin như thế nào? Điểm thưởng cho các tương tự thông minh nhưng có thể truy cập và giải thích các bảng, cột, hồ sơ và các trường. Tôi định nghĩa một "Câu trả lời của ông chủ" là một lời giải thích nhanh (có thể là hai) cho những người không có kỹ thuật ... chủ yếu là ông chủ của bạn, trong những dịp hiếm hoi họ thực sự hỏi bạn rằng bạn làm gì cả ngày.


2
Không chắc chắn serverfault là nơi thích hợp cho câu hỏi này, mặc dù nó hữu ích. Có lẽ DBA.SE hoặc Programmers.SE .
Orble

1
Tại sao ông chủ của bạn sẽ hỏi một câu hỏi như vậy và, thậm chí quan trọng hơn, nó có liên quan gì đến quản trị hệ thống?
John Gardeniers

1
@ John Gardeniers, Nó có thể thuộc về nơi này vì nhiều 'quản trị viên hệ thống' đang đội mũ 'quản trị cơ sở dữ liệu', nghĩa là họ hiểu rõ về cách RDBMS hoạt động. Đối với lý do tại sao các ông chủ đặt câu hỏi họ làm, ai biết, nhưng biết cách truyền đạt rõ ràng các khái niệm là một điều tốt IMO.
Zoredache

1
@Zoredache, trong công việc tôi đội nhiều mũ. Điều đó không có nghĩa là tất cả chúng đều thuộc chủ đề cho SF.
John Gardeniers

Các câu trả lời dưới đây rất tốt, nhưng hãy nhớ rằng bạn có thể có cơ sở dữ liệu không liên quan (chẳng hạn như btrieve) và vẫn duy trì mối quan hệ giữa dữ liệu được chuẩn hóa thông qua logic ứng dụng phù hợp.
Mark Henderson

Câu trả lời:


16

Cơ sở dữ liệu quan hệ không chỉ lưu trữ dữ liệu : nó lưu trữ các mối quan hệ giữa dữ liệu và giúp sử dụng các mối quan hệ đó một cách dễ dàng (tốt, dễ dàng hơn). Trong những ngày đầu của thuật ngữ cơ sở dữ liệu quan hệ, các bảng được gọi là "quan hệ" vì chúng lưu trữ các bit dữ liệu liên quan (các trường, bây giờ là cột), cùng với các mối quan hệ giữa mối quan hệ đó và các mối quan hệ khác.

Bình thường hóa là hành động của các mối quan hệ không phức tạp: "Làm cho mọi thứ đơn giản nhất có thể, nhưng không đơn giản hơn." (Alan Perlis) Đôi khi "... nhưng không đơn giản hơn" có nghĩa là chúng ta không lưu trữ mọi thứ được chuẩn hóa hoàn toàn, bởi vì "đơn giản hơn" kết thúc phức tạp hơn. (Bạn có thể lấy trạng thái từ mã zip, nhưng tại sao phải bận tâm?)


10

Cơ sở dữ liệu quan hệ là một phương pháp cấu trúc dữ liệu để một thực tế được lưu trữ ở một nơi duy nhất. Vì vậy, nếu cả John và Jane Doe đều làm việc cho cùng một công ty, bạn sẽ chỉ lưu trữ các chi tiết duy nhất cho công ty ở một nơi (bảng). Bạn sẽ lưu trữ dữ liệu duy nhất cho John và Jane ở một nơi khác và bạn sẽ lưu trữ cả mối quan hệ của John và Jane với công ty ở vị trí thứ ba. Trong thế giới lý tưởng, điều này có nghĩa là tôi chỉ phải sửa đổi một trường / hàng duy nhất nếu số fax của công ty thay đổi.

Vui lòng hiểu rằng không phải tất cả các cơ sở dữ liệu được lưu trữ trong RDBMS đều được chuẩn hóa đúng. Thỏa hiệp được thực hiện cho hiệu suất và các lý do khác.

Xem bài viết về chuẩn hóa cơ sở dữ liệu. http://en.wikipedia.org/wiki/Database_n normalization


4

Có hai khái niệm chính để phân biệt các hệ thống cơ sở dữ liệu quan hệ. Đầu tiên là quan hệ giữa các mục được lưu trữ. Đó là mô hình bảng dữ liệu, được giải thích thông qua bảng tương tự. Các RDBMS phức tạp hơn các bảng tính, bởi vì thực tế dễ dàng và phổ biến hơn để có nhiều tham chiếu giữa các bảng hoặc bảng tính (tùy thuộc vào phía nào của sự tương tự bạn đang sử dụng).

Thứ hai là các RDBMS thực hiện ý tưởng về một giao dịch, các thuộc tính ACID của

  • nguyên tử,
  • Tính nhất quán,
  • cô lập, và
  • Độ bền

Mô hình quan hệ cho phép nhiều mối quan hệ phức tạp được đưa vào, truy vấn, sắp xếp, nhóm theo, v.v. Mô hình giao dịch đảm bảo rằng các giao dịch xảy ra hoàn toàn hoặc không xảy ra, giữ cho mô hình mối quan hệ nhất quán và chính xác. Chà, ít nhất là làm cho lập trình chính xác có thể giữ nó như vậy.


3

Cơ sở dữ liệu quan hệ giống như Sổ làm việc Excel có nhiều bảng tính và môi trường phần mềm xung quanh để tối ưu hóa hiệu suất như lập chỉ mục và lưu vào bộ đệm, thực thi truy cập an toàn bởi nhiều người dùng cùng lúc và cho phép bạn xem dữ liệu có thể được lan truyền một cách hiệu quả. trên nhiều bảng tính khác nhau.


1

Xóa dữ liệu quan hệ là một công cụ để lưu trữ và truy xuất dữ liệu được lưu trữ trong một mô hình quan hệ.

Một mô hình dữ liệu quan hệ được xây dựng theo một số lượng nhỏ (tùy thuộc vào cuốn sách bạn đọc, 4 hoặc 5 quy tắc) đảm bảo rằng dữ liệu có thể được truy cập một cách nhất quán, cho phép chứng minh tính chính xác của thiết kế và cho phép hệ thống quản lý cơ sở dữ liệu (DBMS) để thực hiện hầu hết các công việc trong việc truy xuất dữ liệu một cách nhanh chóng. Nó cũng cung cấp các công cụ để ghi lại chính thức cấu trúc dữ liệu - thực hiện một cơ sở dữ liệu thực hiện hầu hết các tài liệu.

Hầu hết mọi người không hiểu tại sao tính chính xác lại quan trọng - điều đó có nghĩa là các lỗi ít có khả năng được đưa vào trong quá trình phát triển giải pháp - và (e.hg) 2 lập trình viên khác nhau làm việc trong các lĩnh vực tương tự ít có khả năng nhân đôi nỗ lực.

Là một thực thể riêng biệt từ giao diện ứng dụng và với quan điểm nhất quán về cấu trúc dữ liệu, việc sử dụng hệ thống quản lý cơ sở dữ liệu cho phép các công cụ khác nhau được sử dụng ở giao diện người dùng cho các mục đích khác nhau - vì vậy bạn có thể sử dụng nhiều hơn của các thành phần ngoài kệ khi xây dựng một giải pháp.

Có những mô hình khác ngoài mô hình quan hệ để lưu trữ dữ liệu - nhưng không có mô hình nào khác (theo kinh nghiệm của tôi) gần gũi cả về tính đơn giản, tính linh hoạt và tính sẵn có của các công cụ để phát triển và quản lý dữ liệu của bạn.


1

Câu trả lời 100% phi kỹ thuật:

Cơ sở dữ liệu quan hệ là nơi lưu trữ dữ liệu theo cách để giảm thiểu sự dư thừa và cho phép bạn tìm kiếm thông qua nó một cách dễ dàng.

Giả sử một cơ sở dữ liệu cho một cửa hàng vật nuôi. Cửa hàng có các mặt hàng, nó có khách hàng, và nó có doanh số. Nếu chúng ta đặt nó trong Excel, bạn có thể có cái này cho các cột:

Tên khách hàng | Số điện thoại khách hàng | Địa chỉ khách hàng | Hàng đã mua | Giá | Ngày

Khách hàng đầu tiên, bà Smith, mua thức ăn cho mèo:

Tên khách hàng | Số điện thoại khách hàng | Địa chỉ khách hàng | Hàng đã mua | Giá | Ngày
Bà Smith | 123-555-1234 | 10 đường chính | Thức ăn cho mèo | $ 15 | 2011/03/11

Và sau đó bà Smith cũng muốn một món đồ chơi mèo:

Tên khách hàng | Số điện thoại khách hàng | Địa chỉ khách hàng | Hàng đã mua | Giá | Ngày
Bà Smith | 123-555-1234 | 10 đường chính | Thức ăn cho mèo | $ 15 | 2011/03/11
Bà Smith | 123-555-1234 | 10 đường chính | Đồ chơi mèo | $ 1 | 2011/03/11

Và cô ấy về cơ bản trở lại sau mỗi 2 tuần hoặc lâu hơn và mua những thứ tương tự. Với phương pháp này, bạn sao chép rất nhiều thông tin và điều đó có thể dẫn đến lỗi. Bạn cũng không thể lưu trữ một kho lưu trữ trong này, nó phải là một bảng Excel khác và bảng đó sẽ phải được cập nhật tại mỗi lần bán.

Với cơ sở dữ liệu, chúng tôi có thể có ba thực thể riêng biệt: Khách hàng (có thông tin của họ), Vật phẩm (có mô tả và giá) và Bán (liên kết giữa khách hàng và mặt hàng, có ngày và số lượng).


Ngoài ra, điều này rất quan trọng để đề cập: pinaldave.com/blogfolder/dilbert5.jpg
MPelletier

1

Một số câu trả lời kỹ thuật tốt ở đây. Nhưng ông chủ của tôi sẽ không hiểu ai trong số họ!

Tôi sẽ bắt đầu với một lời giải thích cực kỳ đơn giản - 'Nếu bạn lưu dữ liệu của mình vào một tệp, nó sẽ xuất hiện dưới dạng một danh sách dài. Cơ sở dữ liệu quan hệ lưu dữ liệu giống như bản đồ hoặc đồ thị, do đó các phần khác nhau của bản đồ liên kết với nhau .... '

Và một ví dụ - '.... ví dụ tên của bạn liên kết đến địa chỉ của bạn, đến lượt nó có thể liên kết đến thành phố của bạn.'

Tiếp theo là những lợi ích kinh doanh mà anh ấy quan tâm - 'Ưu điểm của việc này là giúp viết mã rẻ hơn rất nhiều để lấy dữ liệu phức tạp, ví dụ: "tìm cho tôi tất cả những người sống ở Seattle có tên cuối cùng là Smith". Ngoài ra cơ sở dữ liệu quan hệ là rất đáng tin cậy và nhanh chóng. '

Và kết thúc nó bằng một tuyên bố đáng tin cậy - 'Cơ sở dữ liệu quan hệ đã tồn tại trong nhiều năm, là những phần công nghệ rất trưởng thành. Sản phẩm cụ thể của chúng tôi là [tên sản phẩm ở đây] '.


0

Ông chủ của tôi là DBA, nhưng về mặt giáo dân:

Hãy suy nghĩ về hai bảng trong Excel và hàm LOOKUP để tham chiếu các mục trong bảng này sang bảng khác. Bây giờ quy mô tăng lên ít nhất là một hệ số 10.

Đó là về trình độ máy tính của một số người và công việc.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.