Thiết kế cơ sở dữ liệu là một quá trình tuần tự điều chỉnh các kiến thức và công cụ sẵn có để biểu diễn và xử lý thông tin.
Phạm vi thực, nhiệm vụ cụ thể, mô tả luồng thông tin đến và các ý tưởng chung về quy trình xử lý thông tin dần dần được thêm vào một ý tưởng khái niệm nhất định về cơ sở dữ liệu là gì trong một trường hợp cụ thể và như thế nào để làm việc với nó.
Cơ sở dữ liệu hiện đại
Mối quan hệ quan hệ là trọng tâm của bất kỳ mô hình thông tin nào. Các giải pháp từ Oracle về bản chất tương đương với MySQL, nhưng về cơ bản chúng khác nhau ở nhiều khía cạnh. Thiết kế cơ sở dữ liệu cũng là một vấn đề về bảo mật, khối lượng thông tin và trách nhiệm giải trình về tính toàn vẹn của dữ liệu, nhưng đây chỉ là vấn đề thứ yếu đối với vấn đề thiết kế một cơ sở dữ liệu hiệu quả, đáng tin cậy và thân thiện với người dùng.
Bảng Excel không khác gì Oracle và MySQL trong bối cảnh cấu trúc hình chữ nhật (quan hệ): cột và hàng=một ô ở giao điểm của tên cột (trường) và chỉ mục lựa chọn (hàng). Nếu bạn không tính đến thước đo và số lượng lao động thủ công, thì nhờ vào phương tiện kết hợp các ô theo chiều dọc và chiều ngang được phát triển, Excel đã đi trước cả Oracle!
Excel, theo ý tưởng cơ bản của nó, không bao giờ "chiếu sáng" động lực, chức năng của Oracle, và nó không thể chuyển thứ gì đó từ trang tính này sang trang tính khác "theo những gì còn sót lại". Ở đây Oracle có nhiều hứa hẹn hơn, nhưng những cân nhắc của họ về các vấn đề di chuyển một lượng lớn thông tin và kết hợp các vị trí được chính thức hóa từ nhiều nguồn khác nhau vẫn còn nhiều điều mong muốn. Ở đây MySQL có nhiều hứa hẹn hơn: nó không tự đặt ra các nhiệm vụ toàn cục, nhưng nó thực hiện công việc của mình một cách hoàn hảo.
Mối quan hệ quan hệ là những công cụ thuận tiện, thiết thực và được thiết lập tốt, từ các giải pháp cấp Excel riêng cho đến khối lượng toàn cầu của Oracle, được sử dụng ở mọi nơi, theo nhu cầu và chúng đảm bảo có một tương lai việc làm đảm bảo.
Một cơ sở dữ liệu hiện đại là các bảng, hàng, cột và chỉ mục được bao quanh bởi đầy đủ chức năng, được phát triển các công cụ bổ sung có tính đến nhiều thao tác, tải nặng và khối lượng lớn.
Kiến thức và kinh nghiệm về hệ quản trị cơ sở dữ liệu hiện đại (DBMS) không chỉ xem xét các vấn đề về độ tin cậy, độ tin cậy của dữ liệu, quy định truy cập và các vấn đề bảo mật mà còn giúp bạn có thể theo dõi các tác động tiêu cực bên ngoài, phân tích các cuộc tấn công có thể xảy ravà cố ý làm hại.
Cơ sở dữ liệu hiện đại là nền tảng đáng tin cậy cho bất kỳ tài nguyên web và ứng dụng cục bộ nào, khả năng di chuyển thông tin, chuyển đổi và truyền dữ liệu, giao nhau và kết hợp các chế độ xem khác nhau.
Điều kiện thiết yếu duy nhất: nhà phát triển có trình độ cao. Để thực hiện thiết kế hiệu quả các cơ sở dữ liệu quan hệ phải có một chuyên gia và thường xuyên hơn cho một nhóm chuyên gia và chuyên gia trong lĩnh vực ứng dụng của vấn đề đang được giải quyết.
Phạm vi, giải pháp khả thi và những trở ngại
Thông tin lưu truyền khắp mọi nơi. Nhiều dự án được kết nối trực tiếp với Internet, nhưng yếu tố có một biểu diễn dữ liệu chính thức ở đây không tốt hơn yếu tố không chắc chắn khi tạo tài nguyên web cho một nhà máy thép.
Sự phát triển và quan tâm lớn đến các cửa hàng trực tuyến không tạo cơ sở và cơ hội để chuyển trải nghiệm tạo cửa hàng này sang tạo cửa hàng khác. Yếu tố bí mật thương mại tạo ra nhiều trở ngại cho việc chuyển giao kiến thức, mặc dù trên thực tế, bạn nên tách cửa hàng thực tế ra khỏi các công cụ phần mềm được tạo cho cửa hàng này.
Tất nhiên, khách hàng đã trả tiền và mã trang web là tài sản của anh ta. Một tính năng đặc trưng của tính hiện đại: việc chuyển giao kiến thức và sự phát triển giữa các nhiệm vụ cùng loại và các lĩnh vực ứng dụng liên quan là không thể và đây là một vấn đề.
Phân tích cú pháp là một loạt các ứng dụng cho hệ quản trị cơ sở dữ liệu. Trước hết, đó là quét thông tin từ Internet. Điều quan trọng không kém là so sánh thông tin tích lũy trongcơ sở dữ liệu và các yêu cầu của khách truy cập web.
Phân tích từ khóa cũng đòi hỏi phải hình thành một giải pháp tối ưu, nhưng thiết kế cơ sở dữ liệu trên Access có thể hứa hẹn hơn trên MS SQL Server hoặc Oracle.
Danh sách các nguồn thông tin có thể động. Động lực có thể có trong bảng cơ sở dữ liệu nguồn, tên trường bảng và quy tắc gọi (truy vấn). Việc thiết kế cơ sở dữ liệu quan hệ từ nhiều nguồn rõ ràng buộc bạn phải thiết kế từ dữ liệu nguồn chứ không phải từ tổ chức tối ưu của thông tin được thu thập.
Có hai thứ vốn có trong bất kỳ cơ sở dữ liệu nào:
- hướng tới nội dung, ưu tiên thuật toán tạo cơ sở dữ liệu động;
- định hướng sử dụng, cấu trúc của cơ sở dữ liệu quan trọng hơn và thuật toán sử dụng thông tin dựa trên đó.
Trong bất kỳ lĩnh vực ứng dụng nào cũng có một mô hình chính thức về luồng thông tin đến, mô hình lưu trữ thông tin - thiết kế thực tế của cơ sở dữ liệu và mô hình (thuật toán) để sử dụng dữ liệu.
Các quy trình và bước thiết kế khác nhau
Những điều cơ bản về thiết kế cơ sở dữ liệu thường chia thành ba giai đoạn. Các chuyên gia khác nhau đề cập đến các giai đoạn công việc theo những cách khác nhau, nhưng trên thực tế, có ba vị trí:
- lập kế hoạch khái niệm;
- thiết kế logic;
- thực hiện kỹ thuật.
Thực hành góp phần tạo nên truyền thống lâu đời. Không có vấn đề phức tạp phạm vi và vấn đề đang được giải quyết. Luôn luôn phải chọn đúngcông cụ. Ví dụ: bạn cần thu thập thông tin từ khách truy cập vào một tài nguyên web, nhưng bạn cần so sánh nó với dữ liệu từ MS SQL Server. Tài nguyên web được lưu trữ trên FreeBSD (Internet, máy chủ Apache) và MS SQL Server ở thành phố khác có sẵn thông qua mạng phân tán của công ty.
Trong giải pháp này, trước tiên bạn cần giải quyết một vấn đề cụ thể: thiết lập trao đổi dữ liệu với máy chủ nội bộ.
Việc thực thi kỹ thuật của một tác vụ thông thường nhất thiết sẽ có tác động đến giai đoạn đầu: hiếm khi thiết kế cơ sở dữ liệu có thể được thực hiện từ đầu. Ngay cả với công nghệ giải quyết vấn đề đã được chứng minh, phạm vi đang phát triển, nó luôn được yêu cầu làm điều gì đó khác với dự định ban đầu.
Gần đây, nhiều nhà lý thuyết và nhà thực hành hoạt động với các thực thể như là dữ liệu đặc biệt. Đây là những nội dung trừu tượng cho phép bạn mô tả mô hình thông tin ở đầu vào, trong quá trình xử lý và trong kết quả cuối cùng - cơ sở dữ liệu.
Chế độ xem dữ liệu và thực thể
Thiết kế DB thông qua các thực thể và trừu tượng: khả năng tạo ra một bức tranh thông tin, xác định các kiểu dữ liệu và mối quan hệ giữa chúng.
Thông thường thiết kế mô hình cơ sở dữ liệu như vậy kết thúc bằng mô hình đồ họa, sử dụng MS Visio hoặc các công cụ trực quan của DBMS đã chọn. Access có cách riêng để hình thành bức tranh thông tin, MySQL có cách riêng và một số hệ thống quản lý nội dung ẩn hoàn toàn cơ sở dữ liệu, áp đặt mô hình dữ liệu lên nhà phát triển thông qua các thực thể của riêng họ -các đối tượng của nhiệm vụ đang được giải quyết.
Một tính năng đặc trưng của nhiều hệ thống quản lý nội dung (CMS) là chúng tạo ra một "ứng dụng" cho một mức độ trừu tượng hơn khi mô tả vùng thông tin của vấn đề đang được giải quyết. Cơ sở dữ liệu thực sự bị ẩn, CMS cung cấp cho nhà phát triển ý tưởng của riêng mình về bức tranh thông tin của thế giới.
Do đó, các giai đoạn của thiết kế cơ sở dữ liệu được giảm xuống mức tuân thủ các yêu cầu cơ bản và thực hiện các bước do người tạo ra một CMS cụ thể đề xuất. Không có gì đáng xấu hổ khi sử dụng các ý tưởng về cơ sở dữ liệu và thiết kế của chúng từ Symfony hoặc Bitrix, Zend hoặc Yii, nhưng đối với nhà phát triển thì đó là một "gánh nặng".
Tốt nhất, các công cụ thiết kế cơ sở dữ liệu nên được lựa chọn và áp dụng riêng lẻ, không có ý kiến bên ngoài, nhưng với sự áp dụng kinh nghiệm và kiến thức.
Lý tưởng để nhà phát triển được Oracle chứng nhận, nhưng hoàn toàn có thể chấp nhận được đối với trình độ của nhà phát triển để bao gồm những hiểu biết sâu sắc về ý tưởng thông tin của Oracle và kiến thức làm việc về các ứng dụng MySQL.
Trong các dự án phức tạp và xử lý thông tin phân tán, không chỉ cơ sở dữ liệu là quan trọng, mà còn là các nguồn thông tin, ý tưởng về nhu cầu của người tiêu dùng.
Giai đoạn hoặc nhóm: cân bằng các ưu tiên
Yêu cầu về tính nhất quán là điều quan trọng nhất. Khái niệm cơ bản của thiết kế cơ sở dữ liệu cũng bao gồm phân chia giai đoạn công việc, theo dõi các kết quả trung gian, xem xét lại từng giai đoạn đã hoàn thành dựa trên việc thực hiện loại công việc sau:
- hệ thống;
- pha;
- phản hồi từ bất kỳ thời điểm nào, đến vị trí ban đầu.
Những điều khoản này là trừu tượng, nhưng có trong bất kỳ công nghệ lý thuyết và thực tiễn nào để tạo ra một cơ sở dữ liệu hiệu quả.
Không có công nghệ nào tự nó phát triển, nó được thúc đẩy bởi con người. Trình độ của nhóm phát triển là rất cần thiết. Mô hình thông tin cơ sở dữ liệu không chỉ là một khuôn khổ, mà còn là các luồng thông tin.
Điều quan trọng hơn: đồ họa đẹp trong biểu diễn cấu trúc cơ sở dữ liệu hoặc mô tả chính xác các luồng thông tin trong động lực học - một vấn đề không chỉ về nhiệm vụ và phạm vi, mà còn là ý kiến của nhóm phát triển về động lực học.
Nhân sự là tất cả, nhưng trong bối cảnh: thiết kế khái niệm của cơ sở dữ liệu là tất cả mọi thứ. Tất cả mọi người là duy nhất, và trong lĩnh vực hệ thống thông tin, đại diện của những người cụ thể tồn tại và phát triển.
Điều quan trọng là phải xây dựng một đội ngũ các nhà phát triển, chứ không phải một số bước thiết kế cơ sở dữ liệu hoang đường do một chuyên gia có thẩm quyền đề xuất. Quyền hạn của chuyên viên này được hình thành trên cơ sở những công việc cụ thể, vào một thời điểm cụ thể. Công việc cần phải làm ngay hôm nay, nhiệm vụ mới, thiết bị hiện đại, công nghệ mới,…
Có thể ngược lại. Có Excel và Access và dữ liệu "dồi dào" ở các định dạng này từ thời cổ đại, khi Windows for Workgoups vẫn còn hoạt động tốt. Một phần còn lại dữ liệu dBase và Quattro. Ngày nay những từ này đã bị lãng quên, nhưng thông tinvẫn còn, nó là nhu cầu và cần được chiết xuất và hình thành những ý tưởng mới.
Cũ và mới: cân bằng kiến thức
Công nghệ đám mây không giống như cơ sở dữ liệu mà Ashton-Tate đã làm. Những gì Oracle từng mua không có cách nào so sánh được với những gì nó làm được ngày nay. Nhưng các biến, thuật toán, hàm, vòng lặp và điều kiện vẫn còn trong lập trình kể từ đầu những năm 80 đó. Trừ khi khái niệm về thủ tục này đã chìm vào quên lãng, và mọi thứ vẫn như thời cổ đại.
Ngay cả những ý tưởng hiện đại về lập trình hướng đối tượng cũng được bao bọc trong những "khuôn mẫu" ngữ nghĩa và cú pháp cổ điển của thế kỷ trước.
Việc cần làm - lập trình là quán tính, và việc chính thức hóa thông tin và thiết kế cơ sở dữ liệu thông tin là một quá trình hơn là một kết quả. Công việc được dàn dựng là điều kiện tiên quyết để đạt được kết quả. Nhưng ai đã đếm số lần lặp lại từ các giai đoạn trung gian gần như cho đến khi bắt đầu công việc?
Thông tin luôn động, không có gì đứng yên: đặc biệt là lĩnh vực chủ đề của nhiệm vụ và yêu cầu của người dùng. Mỗi giai đoạn hoàn thành của công việc cho phép bạn đánh giá ở một cấp độ mới những gì đã hoàn thành và những gì còn phải làm.
Coi việc thiết kế cấu trúc cơ sở dữ liệu như một nhiệm vụ và nhận được kết quả cuối cùng là vô ích. Ngay sau khi cơ sở dữ liệu được đưa vào hoạt động, một ý tưởng mới chắc chắn sẽ xuất hiện, ngay cả khi công cụ tạo cơ sở dữ liệu đó là Excel "đơn giản" và không phải là một sản phẩm mạnh mẽ và linh hoạt tuyệt vời của Oracle,thao túng hàng triệu giao dịch, hàng trăm nghìn người dùng đồng thời và hàng terabyte thông tin.
Ưu tiên không phải là cấu trúc của cơ sở dữ liệu, mà là việc hình thành một đội ngũ chuyên gia có trình độ, cộng với yêu cầu bắt buộc về tính năng động hơn của kết quả, để khi hoàn thành công việc sẽ không cần phải liên hệ các nhà phát triển, ít nhất một vài tháng.
Phát triển tuần tự và / hoặc nhảy cao
Windows không phải là một cơ sở dữ liệu, nhưng nó có một di tích - cơ quan đăng ký. Tệp máy chủ lưu trữ chỉ đơn giản là nhận dạng địa chỉ IP và tên tượng trưng của máy cục bộ. Nhưng thông qua tệp này, các luồng thông tin từ các miền khác nhau hoặc đến các DBMS khác nhau được hình thành.
Có thể hiểu Windows nhiều mặt là một máy tính hoặc máy chủ đang hoạt động, nhưng nó sẽ không hoạt động theo bất kỳ cách nào để biện minh cho logic của các phiên bản của sản phẩm này. PHP cũng không phải là một cơ sở dữ liệu, nhưng lập luận của các nhà phát triển về lý do tại sao phiên bản 5 ngay sau phiên bản 7 là không nhất quán. PHP là một công cụ truy cập MySQL, cú pháp của nó xác định cách tạo truy vấn và nhận phản hồi từ cơ sở dữ liệu bằng cách sử dụng phương ngữ SQL.
Ví dụ về sự không tương thích giữa các công cụ lập trình hiện đại và hỗ trợ cơ sở dữ liệu đã trở thành tiêu chuẩn trong những năm gần đây, nhưng đây không phải là điều nguyên bản nhất. Điều gì sẽ đằng sau phiên bản Windows 10? Triển vọng cho Cơ sở dữ liệu Oracle 12c là gì?
Thông tin của nhà phát triển-tác giả: Oracle Database 11g Express Edition (Oracle Database XE) là một DBMS cấp đầu vào dựa trên mã DBMS của Oracle Database 11g Release 2. DBMS này miễn phí để phát triển,triển khai và bán, tải xuống nhanh và dễ quản lý.”
Quan điểm của nhà phát triển người dùng: “Năm 2013, Oracle phát hành Oracle Database 12c (phiên bản 12.1.0.1) với những lợi ích chính là chi phí lưu trữ thấp hơn, dữ liệu sẵn có cao, dễ dàng hợp nhất cơ sở dữ liệu và bảo vệ truy cập dữ liệu" ".
Thực hành Thực tế: Một thiết kế cơ sở dữ liệu lôgic khách quan, hiệu quả và hiệu quả chỉ dành cho một nhóm các nhà phát triển có trình độ. Để có được một kết quả làm việc không khó, cái khó là chính thức hóa các luồng thông tin đến và xác định nền tảng tối ưu.
Đến thế giới của những hình dạng mượt mà từ những hình chữ nhật chính xác
Với sự ra đời của lập trình hướng đối tượng, tuần tự hóa dữ liệu đã có một sức sống mới. Thật vậy, mọi thứ xung quanh chỉ là những đường thẳng, tốt nhất là có độ dài không xác định. Số và ngày tháng cũng là chuỗi ký tự.
Sức mạnh và tính khách quan của các mối quan hệ là không thể phủ nhận, nhưng động lực của các cột và hàng có làm hỏng danh tiếng của chúng không? Bảng chỉ đơn giản là dữ liệu có thể có tiêu đề (danh sách các cột) hoặc không có hàng. Hãy để bảng chỉ là một tập hợp dữ liệu, không nhất thiết phải được đặt tên.
Tập hợp dữ liệu có thể không đồng nhất và bạn có thể tìm thấy dữ liệu có cấu trúc khác nhau trong đó. Về cơ bản, tính đồng nhất của dữ liệu cho thấy sự phát triển của phạm vi. Sự phân bố dữ liệu theo loại và loài là một dấu hiệu của cách tiếp cận khách quan và có hệ thống, nhưng vẫn nên thừa nhận khả năng của động lực cấu trúc.
Nếu đầu rathiết kế và tạo cơ sở dữ liệu ngoài các cấu trúc cứng nhắc và giả sử rằng bảng là tập hợp các hàng không nhất thiết phải cùng loại và tương tự về ngữ nghĩa với nhau, thì thiết kế cơ sở dữ liệu sẽ thay đổi đáng kể.
Chủ đề của tác phẩm sẽ không phải là mô tả cấu trúc cơ sở dữ liệu, mà là động lực chuyển động của thông tin. Các giai đoạn của công việc sẽ được chia thành ba trọng tâm:
- luồng thông tin đầu vào;
- chuyển đổi và di chuyển thông tin trong cơ sở dữ liệu;
- chọn dữ liệu để sử dụng.
Không có khái niệm về cấu trúc bảng. Không có hàng hoặc cột. Có một sự trừu tượng - một cấu trúc nhất định, đã cho, thỏa mãn một điểm cụ thể trong thuật toán. Cụ thể hơn, chức năng xử lý thông tin yêu cầu một số lượng thông tin nhất định.
Yêu cầu bắt buộc về tính đệ quy của tất cả các chức năng xử lý thông tin và tập trung vào các chức năng, không phải dữ liệu, cho phép bạn thiết kế cơ sở dữ liệu theo động lực của thông tin tích lũy và luồng dữ liệu đến, được sử dụng theo ý muốn của người dùng, quy trình hoặc chức năng khác.
Trên thực tế: một tín hiệu sử dụng đến, một yêu cầu tìm nạp đã được nhận, một trình kích hoạt trong ứng dụng được kích hoạt và thông tin đến, thông qua những gì đã có, cung cấp giải pháp mong muốn.
Kiến thức cơ bản và cấu trúc cứng nhắc
Tri thức là đặc quyền của con người, các chương trình là gánh nặng của máy tính. Nhà phát triển có thể tự do áp dụng kiến thức khi anh ta thấy phù hợp trong một tình huống cụ thể. Một người bình thường sử dụng rất nhiều cơ sở dữ liệu mà không coi trọng nó. thế nàocơ sở dữ liệu được tổ chức trong đầu của một người bình thường, không ai biết, nhưng mọi người đều biết cách anh ta tiến hành công việc kinh doanh của mình, nơi anh ta viết ra những gì anh ta tìm thấy và khi nào anh ta cần sử dụng nó.
Kết quả công việc của lập trình viên - ở cấp độ một chương trình trong "Cơ bản", lấy dữ liệu từ trang web của cửa hàng trực tuyến qua ODBC, tương đương với một nhà phát triển Oracle có tiêu đề đưa ra yêu cầu tìm nạp dữ liệu từ Salon Hàng không và Vũ trụ MAKS. Cả hai kết quả đều "đóng băng" ở trạng thái tĩnh từ thời điểm công việc hoàn thành. Đây không phải là kiến thức hoạt động mà một người sử dụng, đây là bí mật của việc tạo ra một hệ thống thiết kế cơ sở dữ liệu.
Không sửa được thuật toán. Mọi thứ phải được xác định động. Công lao của các nhà phát triển có trình độ là không thể phủ nhận, nhưng họ hoàn toàn không nằm ở các dạng giải pháp thanh lịch từ Oracle, MySQL hoặc Access, vốn bị hạn chế về khả năng của nó. Một bảng tính Excel khác có thể cung cấp nội dung động và không yêu cầu sự tham gia của lập trình viên trong thời gian ít nhiều sau khi hoàn thành công việc.
Câu hỏi đặt ra là động lực của khu vực ứng dụng được chính thức hóa như thế nào, chứ không phải cấu trúc của cơ sở dữ liệu.
Giải pháp trực tiếp
Không thể lập kế hoạch công việc theo cách ràng buộc một nhóm các nhà phát triển chuyên nghiệp vào một nhiệm vụ. Không phải nhóm bị xúc phạm, nhưng đây không phải là cách tiếp cận đúng.
Nhiệm vụ thiết kế cơ sở dữ liệu nên được xây dựng theo cách sao cho chức năng được phát triển sẽ tự cải thiện, tích lũy kiến thức và khi thực hiện các “nhiệm vụ” của nó, không bắt đầu từ mã,do các chuyên gia tạo ra, nhưng từ kiến thức có được thông qua mã này.