
How to Design Structured Database Systems Using SQL [Full Book]
How to Design Structured Database Systems Using SQL [Full Book] 관련
This book will guide you, step-by-step, through designing a relational database using SQL. SQL is one of the most recognized relational languages for managing and querying data in databases.
You’ll learn the fundamental concepts related to both data and the databases where they are stored and managed - from how data is transformed into information and subsequently into knowledge, to the architecture of a database management system (DBMS). We’ll also cover the different stages of the database design process, as well as its key principles, focusing specifically on the design of relational databases.
By the end of the book, you’ll have a solid understanding of how to design and maintain efficient, secure databases that can support complex data-driven applications, all aimed at meeting a series of requirements imposed by end users or clients. You’ll also learn the SQL fundamentals you’ll need to implement this design on a DBMS, and then maintain and query data on it.
So, whether you're a beginner or looking to enhance your skills, this book will provide the knowledge and tools you need to succeed in the world of data management.
Prerequisites
Before going through this book, there are a few useful prerequisites you should have:
Fundamentals
- Basic programming knowledge like variables, data types (string/number/boolean), and conditionals/loops
- Familiarity with spreadsheet terms/basic functions (rows, columns, sorting/filtering) as this will help map to tables/tuples/attributes
- Command-line basics like how to open a terminal, run a command, set
PATH
(you’ll use CLI tools occasionally here), and so on
Environment to set up
- A relational DBMS like PostgreSQL (recommended, as it’s what we’ll use here)
- A SQL client like psql, pgAdmin, TablePlus, or DBeaver (pick one)
- An Entity Relationship Diagram tool like draw.io/diagrams.net, Lucidchart, or dbdiagram.io
- A code editor like VS Code (with SQL and ERD extensions is fine)
Helpful background
- Familiarity with some math/logic basics like sets/subsets, relations, functions as well as basic propositional logic (
AND
/OR
/NOT
, implication). - Basic knowledge of data modeling terms (entity, attribute, relationship, cardinality, and so on)
- Version control basics
With that sorted, let’s dive in.
Conclusion
In this book, we’ve covered all the key concepts you need to know to design a database, based on certain requirements, for a software project.
But again, these concepts and commands are only the most basic and fundamental ones. So to learn more about SQL database design, check out other resources as well like reference books, articles, or the many resources available on the internet.
Your goal should be to gain a deeper understanding of what you’ve learned here. This will help you design robust DBs according to client requirements and code even more efficient queries.
Thank you for reading!