Microsoft SQL Server āļŠāļĢāđāļēāļāļāļēāļāļāđāļāļĄāļđāļĨāļāļāļāđāļāļĢāļĄāļ·āļāļāļēāļāļĩāļ
āđāļāļĒāļļāļāļāļĩāđāļāđāļāļĄāļđāļĨāļāļ·āļāļāļĢāļąāļāļĒāļēāļāļĢāļŠāļģāļāļąāļāļāļāļāđāļāļĢāļāļāļēāļāđāļŦāļāđāđāļĨāļ°āļāļļāļĢāļāļīāļāļĄāļ·āļāļāļēāļāļĩāļāļāđāļēāļāļāđāļāļāļāļēāļĢ âāļĢāļ°āļāļāļāļēāļāļāđāļāļĄāļđāļĨâ āļāļĩāđāļāļāļāđāļāļāļĒāđāļāļąāđāļāļāļ§āļēāļĄāļāļĨāļāļāļ āļąāļĒ āļāļ§āļēāļĄāļĢāļ§āļāđāļĢāđāļ§ āđāļĨāļ°āļŠāļēāļĄāļēāļĢāļāļāļĢāļąāļāļāļĒāļēāļĒāļāļēāļĄāļāļēāļĢāđāļāļīāļāđāļāđāļāđāļāļĒāđāļēāļāļĄāļĩāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļ Microsoft SQL Server āļāļ·āļāļŦāļāļķāđāļāđāļāđāļāļāđāļāđāļĨāļĒāļĩāļāļēāļāļāđāļāļĄāļđāļĨāļāļąāļāļāļąāļāļāđāļ āđ āļāļāļāđāļĨāļāļāļĩāđāļāļāļāđāļāļĢāļāļąāđāļāļāļģāđāļ§āđāļ§āļēāļāđāļ āļ§āļąāļāļāļĩāđ 2beshop.com āļāļ°āļāļēāļāļļāļāđāļāļēāļ°āļĨāļķāļāđāļāļ§āļāļēāļāđāļĨāļ° Best Practices āđāļāļāļēāļĢāļŠāļĢāđāļēāļ āļāļēāļāļāđāļāļĄāļđāļĨāļāļāļāđāļāļĢāļĄāļ·āļāļāļēāļāļĩāļ āļāđāļ§āļĒ Microsoft SQL Server āļĢāļ§āļĄāļāļąāđāļāļ§āļīāļāļĩāļāļāļāđāļāļāļāļēāļāļāđāļāļĄāļđāļĨāļāļĩāđāļāļąāđāļāđāļŠāļāļĩāļĒāļĢ āļĒāļ·āļāļŦāļĒāļļāđāļ āđāļĨāļ°āļĒāļąāđāļāļĒāļ·āļ
āđāļŦāļāļļāļāļĨāļāļĩāđāļāļāļāđāļāļĢāđāļĨāļ·āļāļāđāļāđ Microsoft SQL Server āđāļāļāļēāļĢāļŠāļĢāđāļēāļāļāļēāļāļāđāļāļĄāļđāļĨāļāļāļāđāļāļĢāļĄāļ·āļāļāļēāļāļĩāļ
- āļāļ§āļēāļĄāļāđāļēāđāļāļ·āđāļāļāļ·āļāđāļĨāļ°āđāļŠāļāļĩāļĒāļĢāļ āļēāļ: Microsoft SQL Server āđāļāđāļāļāļēāļāļāđāļāļĄāļđāļĨāļāļĩāđāļāđāļēāļāļāļēāļĢāļāļąāļāļāļēāļāļĒāđāļēāļāļāđāļāđāļāļ·āđāļāļ āļĢāļāļāļĢāļąāļāļāļĢāļīāļĄāļēāļāļāđāļāļĄāļđāļĨāļāļģāļāļ§āļāļĄāļēāļ āļāļĢāđāļāļĄāļĢāļ°āļāļāļŠāļģāļĢāļāļāđāļĨāļ°āļāļđāđāļāļ·āļāļāđāļāļĄāļđāļĨāļāļĩāđāļĄāļĩāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļ āļāđāļ§āļĒāđāļŦāđāļāļāļāđāļāļĢāļĄāļąāđāļāđāļāļ§āđāļēāļāđāļāļĄāļđāļĨāļāļāļāļāļļāļāđāļĄāđāļŠāļđāļāļŦāļēāļĒāļāđāļēāļĒ āđ
- āļāļ§āļēāļĄāļāļĨāļāļāļ āļąāļĒāļĢāļ°āļāļąāļāļāļāļāđāļāļĢ: Microsoft SQL Server āļĄāļĩāļĢāļ°āļāļāļĢāļąāļāļĐāļēāļāļ§āļēāļĄāļāļĨāļāļāļ āļąāļĒāļāļąāđāļāļŠāļđāļ āļāļąāđāļāļāļēāļĢāđāļāđāļēāļĢāļŦāļąāļŠāļāđāļāļĄāļđāļĨ āļāļēāļĢāļāļģāļŦāļāļāļŠāļīāļāļāļīāđāļāļđāđāđāļāđāļāļēāļ āđāļĨāļ° Audit Trail āļāļķāđāļāđāļŦāļĄāļēāļ°āļāļąāļāļāļāļāđāļāļĢāļāļĩāđāļĄāļĩāļĄāļēāļāļĢāļāļēāļāļāļ§āļēāļĄāļāļĨāļāļāļ āļąāļĒāļŠāļđāļ[3].
- āļāļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļāđāļāļāļēāļĢāļāļĒāļēāļĒāļĢāļ°āļāļāđāļĨāļ°āļĢāļāļāļĢāļąāļāļāļēāļĢāđāļāļīāļāđāļ: āļĢāļāļāļĢāļąāļāļāļēāļĢāļāļĒāļēāļĒāļāļēāļāļāđāļāļĄāļđāļĨāđāļāļĒāđāļĄāđāļāļĢāļ°āļāļāļāļąāļāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļ āļāļĢāđāļāļĄāļĢāļāļāļĢāļąāļ BI, Big Data āđāļĨāļ° IoT āļŠāļģāļŦāļĢāļąāļāļāļāļāđāļāļĢāđāļāļĒāļļāļ Digital Transformation
āļŦāļĨāļąāļāļāļēāļĢāļāļāļāđāļāļāļāļēāļāļāđāļāļĄāļđāļĨāđāļ Microsoft SQL Server āļŠāļģāļŦāļĢāļąāļāļāļāļāđāļāļĢ
āđāļāļ§āļāļīāļāļāļ·āđāļāļāļēāļāļāļāļāļāļēāļĢāļāļāļāđāļāļāļāļēāļāļāđāļāļĄāļđāļĨ (Database Design)
- āđāļāđāļāļāđāļāļĄāļđāļĨāļāļāļāđāļāđāļ”āļāļēāļĢāļēāļ”āļāļĩāđāļĄāļĩāđāļāļ·āđāļāļŦāļēāļāļĢāļāļāļąāļāļŦāļąāļ§āđāļĢāļ·āđāļāļāđāļĨāļ°āļāđāļ§āļĒāļĨāļāļāļ§āļēāļĄāļāđāļģāļāđāļāļ
- āļāļģāļŦāļāļāļāļ§āļēāļĄāļŠāļąāļĄāļāļąāļāļāđāļĢāļ°āļŦāļ§āđāļēāļāļāļēāļĢāļēāļāđāļāļĒāđāļāđ Primary Key āđāļĨāļ° Foreign Key āđāļāļ·āđāļāļāļ§āļēāļĄāļāļđāļāļāđāļāļāļāļāļāļāđāļāļĄāļđāļĨ[3][4].
- āļ§āļīāđāļāļĢāļēāļ°āļŦāđāļāļ§āļēāļĄāļāđāļāļāļāļēāļĢāđāļāļāļāļāļĢāđāļĄ āļĢāļēāļĒāļāļēāļ āļŦāļĢāļ·āļāļāļēāļĢāđāļāđāļāļēāļāļāļĢāļīāļ āđāļāļ·āđāļāļāļāļāđāļāļāļāļēāļāļāđāļāļĄāļđāļĨāļāļĩāđāđāļŦāļĄāļēāļ°āļŠāļĄ[3].
āļāļēāļĢāļāļąāđāļāļāļ·āđāļāļāļēāļĢāļēāļ āļāļāļĨāļąāļĄāļāđ āđāļĨāļ°āļāļēāļĢāļāļąāļāđāļāļĢāļāļŠāļĢāđāļēāļ
- āđāļāđāļāļ·āđāļāļāļĩāđāđāļāđāļēāđāļāļāđāļēāļĒ āđāļĄāđāļŠāļąāļāļŠāļ āđāļāđāļāđāļāļāļēāļĄāļĄāļēāļāļĢāļāļēāļ āđāļāđāļ āđāļāđāļāļąāļāļĐāļĢāļāļīāļĄāļāđāđāļĨāđāļāđāļĨāļ° _ (underscore) āđāļāđāļēāļāļąāđāļ[1][4]
- āļŦāļĨāļĩāļāđāļĨāļĩāđāļĒāļāļāļēāļĢāđāļāđāļāļ·āđāļāļāļĩāđāļāļģāļāļ§āļĄ āđāļĨāļ°āļĢāļ°āļāļļāļāđāļāļĄāļđāļĨāđāļāđāļāđāļĨāļ°āļāļēāļĢāļēāļāļāļąāļāđāļāļ āđāļāđāļ user_name, product_id
- āļāļ§āļĢāļāļąāļāļāļģāđāļāļāļŠāļēāļĢāļāļĢāļ°āļāļāļ Naming Convention āđāļĨāļ°āđāļāļāļāļąāļ Entity-Relationship Diagram (ERD) āđāļāļ·āđāļāđāļŦāđāđāļāđāđāļ āļāļąāļāļāļē āļŦāļĢāļ·āļāļŠāđāļāļāđāļāļāļĩāļĄāļāļēāļāđāļāđāļŠāļ°āļāļ§āļ[4].
āļāļģāļŦāļāļ Primary Key, Foreign Key āđāļĨāļ° Index āļāļĩāđāđāļŦāļĄāļēāļ°āļŠāļĄ
- āđāļāđāļĨāļ°āļāļēāļĢāļēāļāļāļ§āļĢāļĄāļĩ Primary Key āđāļāļ·āđāļāļĢāļ°āļāļļāļāđāļāļĄāļđāļĨāđāļāđāļĨāļ°āđāļĢāļāļāļāļĢāđāļāļāļĒāđāļēāļāļāļąāļāđāļāļ[3][4].
- āđāļāđ Foreign Key āđāļāļ·āđāļāđāļŠāļāļāļāļ§āļēāļĄāđāļāļĩāđāļĒāļ§āļāđāļāļāļĢāļ°āļŦāļ§āđāļēāļāļāļēāļĢāļēāļāđāļĨāļ°āļĢāļąāļāļĐāļēāļāļ§āļēāļĄāļāļđāļāļāđāļāļāļāļāļāļāđāļāļĄāļđāļĨ
- āļŠāļĢāđāļēāļ Index āļāļāļāļāļĨāļąāļĄāļāđāļāļĩāđāđāļāđāļāđāļāļŦāļēāļāđāļāļĒ āđāļĨāļ°āļĢāļ°āļ§āļąāļāļāļĒāđāļēāđāļŠāđ Index āļĄāļēāļāđāļāļīāļāļāļāļāļĢāļ°āļāļāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļ āđāļāđāļ āļāļēāļĢāļēāļāļāļĩāđāļĄāļĩāļāļēāļĢāđāļāđāđāļāļāđāļāļĒ āđāļĄāđāļāļ§āļĢāļĄāļĩ Index āđāļĒāļāļ°[5].
āļāļēāļĢ Normalization āđāļāļ·āđāļāļāđāļāļāļāļąāļāļāđāļāļĄāļđāļĨāļāđāļģāļāđāļāļ
- āļāļ§āļĢāļāļāļāđāļāļāļāļēāļāļāđāļāļĄāļđāļĨāđāļŦāđāļāđāļēāļāļāļąāđāļāļāļāļ Normalization āđāļāļ·āđāļāļāđāļāļāļāļąāļāļāđāļāļĄāļđāļĨāļāđāļģāļāđāļāļāđāļĨāļ°āļĨāļāļāļąāļāļŦāļēāđāļāļāļēāļĢāļāļąāļāđāļāļāļāđāļāļĄāļđāļĨāđāļāļāļāļēāļāļ[3].
- āļĢāļ°āļāļąāļāļāļēāļĢ Normalize āļāļķāđāļāļāļĒāļđāđāļāļąāļāļĢāļđāļāđāļāļāļāđāļāļĄāļđāļĨāđāļĨāļ°āļāļ§āļēāļĄāļāđāļāļāļāļēāļĢāļāđāļēāļāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļ
Best Practices āđāļāļāļēāļĢāļāļąāļāļāļē Microsoft SQL Server āļŠāļģāļŦāļĢāļąāļāļāļāļāđāļāļĢ
- āļ§āļēāļāđāļāļāļāļāļēāļāļāļēāļāļāđāļāļĄāļđāļĨāđāļĨāļ°āļāļēāļĢāđāļāļīāļāđāļāđāļāļāļāļēāļāļ āļāļąāđāļāļāđāļē Autogrowth āđāļāđāļāđāļāļ Fixed Size āđāļĄāđāđāļŦāđāđāļāđāļāļ % āđāļāļ·āđāļāļāđāļāļāļāļąāļāļāļąāļāļŦāļēāļāļ§āļēāļĄāđāļŠāļāļĩāļĒāļĢ[2].
- āđāļāđ Stored Procedure āđāļāļ SQL Statement āļāļĩāđāļāļĒāļđāđāđāļāđāļāļāļāļĨāļīāđāļāļāļąāļāđāļāļĒāļāļĢāļ āļāđāļ§āļĒāđāļŦāđāļāļ§āļāļāļļāļĄāļĄāļēāļāļĢāļāļēāļāđāļĨāļ°āļāļĢāļąāļāļāļĢāļļāļāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļāđāļāđāļāļĩ[2][6].
- āļŠāļĢāđāļēāļ Index āļāļĒāđāļēāļāļĢāļāļāļāļāļ āđāļāļ·āđāļāļĨāļāļāļąāļāļŦāļē Table Scan āđāļĨāļ°āđāļāļīāđāļĄāļāļ§āļēāļĄāđāļĢāđāļ§āļāļēāļĢāļāđāļāļŦāļē āļāđāļēāļāļēāļĢāļēāļāļĄāļĩāļāļāļēāļāđāļŦāļāđāļŦāļĢāļ·āļāđāļāđāļāļēāļāļāđāļāļĒ
- āļāļ§āļĢāļŠāļģāļĢāļāļāļāđāļāļĄāļđāļĨ (Backup) āļāļēāļĄāļĢāļāļāđāļ§āļĨāļēāđāļĨāļ°āļāļāļŠāļāļāđāļāļāļāļđāđāļāļ·āļāļāđāļāļĄāļđāļĨ (Restore) āđāļāđāļāļāļĢāļ°āļāļģ
- āļāļĢāļąāļāđāļāđāļ Performance āđāļāļĒ Monitor Query, āļāļĢāļ§āļāļŠāļāļ Index, āđāļĨāļ°āđāļāđāļāļĩāđāļāļāļĢāđāļāļāļ SQL Server āļāļĒāđāļēāļ Query Store, Automatic Index Tuning āļŠāļģāļŦāļĢāļąāļāđāļ§āļāļĢāđāļāļąāļāđāļŦāļĄāđ[5].
āļāļĢāļāļĩāļĻāļķāļāļĐāļēāļāļ§āļēāļĄāļŠāļģāđāļĢāđāļ: āļāļąāļ§āļāļĒāđāļēāļāļāļāļāđāļāļĢāļāļĩāđāđāļāđ Microsoft SQL Server
- āļāļļāļĢāļāļīāļāļāļēāļĢāđāļāļīāļāļāļāļēāļāđāļŦāļāđāļāļĩāđāļāđāļāļāļāļēāļĢāļĢāļ°āļāļāļāļēāļāļāđāļāļĄāļđāļĨāļāļĩāđāļĄāļĩāļāļļāļĢāļāļĢāļĢāļĄāļāļģāļāļ§āļāļĄāļēāļāđāļĨāļ°āļāđāļāļāđāļāđāļēāļĢāļŦāļąāļŠāļāđāļāļĄāļđāļĨ āđāļāđ Microsoft SQL Server āđāļāļĢāļēāļ°āļĢāļāļāļĢāļąāļ Transaction āļāļĢāļīāļĄāļēāļāļŠāļđāļ āđāļĨāļ°āļĄāļĩāļĢāļ°āļāļ Audit āļāļĢāļāļāđāļ§āļ
- āļāļāļāđāļāļĢāļĢāļąāļāļāļĩāđāļāđāļāļāļāļēāļĢāļāļēāļāļāđāļāļĄāļđāļĨāļ āļēāļĒāđāļāđāļāļ On-premise āļŠāļēāļĄāļēāļĢāļāļāļ§āļāļāļļāļĄāļāļēāļĢāđāļāđāļēāļāļķāļāđāļĨāļ°āđāļāđāļāļāļ§āļēāļĄāļĄāļąāđāļāļāļāļāđāļēāļāļāđāļāļĄāļđāļĨ
- āļāļĨāļļāđāļĄ Start-Up āļāļĩāđāļāđāļāļāļāļēāļĢāđāļāļīāļāđāļāļāļĒāđāļēāļāļĢāļ§āļāđāļĢāđāļ§ āļŠāļēāļĄāļēāļĢāļāđāļāđ SQL Server āļāļ Cloud āđāļĨāđāļ§āļāļĒāļēāļĒāļāļēāļĄāļāļđāđāđāļāđāļāļĢāļīāļāđāļāđāļāļĒāđāļēāļāļĒāļ·āļāļŦāļĒāļļāđāļ
āļŠāļĢāļļāļ āđāļĨāļ° Call-to-Action
Microsoft SQL Server āđāļāđāļāđāļāļĢāļ·āđāļāļāļĄāļ·āļāļŠāļĢāđāļēāļ āļāļēāļāļāđāļāļĄāļđāļĨāļāļāļāđāļāļĢāļĄāļ·āļāļāļēāļāļĩāļ āļāļĩāđāđāļŦāļĄāļēāļ°āļāļąāļāļāļļāļāļāļāļāđāļāļĢāļāļĩāđāļāđāļāļāļāļēāļĢāđāļāļĨāļđāļāļąāđāļāļāļēāļāļāđāļāļĄāļđāļĨāļāļĩāđāļĄāļĩāđāļŠāļāļĩāļĒāļĢāļ āļēāļ āļāļ§āļēāļĄāļāļĨāļāļāļ āļąāļĒāļŠāļđāļ āđāļĨāļ°āļĢāļāļāļĢāļąāļāļāļēāļĢāļāļĒāļēāļĒāđāļāđāđāļāļāļāļēāļāļ āļŦāļēāļāļāļļāļāļāļģāļĨāļąāļāļĄāļāļāļŦāļēāđāļāļ§āļāļēāļāļāļēāļĢāļāļāļāđāļāļāļāļēāļāļāđāļāļĄāļđāļĨāļāļĩāđāļāļāļāđāļāļāļĒāđ āļŦāļĢāļ·āļāļŠāļāđāļāļāļĢāļīāļāļēāļĢāļ§āļēāļāļĢāļ°āļāļāļāļēāļāļāđāļāļĄāļđāļĨāļĄāļ·āļāļāļēāļāļĩāļ āļāļāđāļāļ°āļāļģāđāļŦāđāļāļĢāļķāļāļĐāļēāļāļĩāļĄāļāļđāđāđāļāļĩāđāļĒāļ§āļāļēāļāļāļāļ 2beshop.com āđāļāļ·āđāļāļ§āļēāļāđāļāļĢāļāļŠāļĢāđāļēāļāļāļēāļāļāđāļāļĄāļđāļĨāļāļĩāđāļĄāļąāđāļāļāļāđāļĨāļ°āļĢāļāļāļĢāļąāļāļāļļāļāļāļ§āļēāļĄāļāđāļāļāļāļēāļĢāļāļāļāļāļāļāđāļāļĢāļāļļāļ
āļāļīāļāļāđāļāļŠāļāļāļāļēāļĄāđāļĢāļē āđāļāļĢ. 02-1186767 āļŦāļĢāļ·āļāđāļāļĢāđāļāļāļāļ§āļēāļĄāļāļĩāđ āđāļŦāđāļāļāđāļāļāļāļāđāļāļĢāļĢāļąāļāļĢāļđāđāļāļ§āļēāļĄāļŠāļģāļāļąāļāļāļāļāļāļēāļĢāļŠāļĢāđāļēāļāļāļēāļāļāđāļāļĄāļđāļĨāļāļāļāđāļāļĢāļāļĩāđāđāļāđāļĄāļēāļāļĢāļāļēāļāđāļāļāļĢāđāļāļĄāļāļąāļ!
āļāđāļēāļāļāļīāļ (References Sources)
- [1] sisense.com: 10 Rules for a Better SQL Schema
- [2] sqlservercentral.com: SQL Best Practices – Universal Checklist
- [3] support.microsoft.com: Database design basics
- [4] vertabelo.com: Top 11 Best Practices for Database Design
- [5] learn.microsoft.com: SQL Server and Azure SQL Index Architecture and Design Guide
- [6] sqlservercentral.com: Best Practices for Database Design