SlideShare a Scribd company logo
CSE 136 Lecture 2
   Database design steps for the enterprise
     Logical Design Overview
     Physical Design

     Logical design in detail
       Conceptual Modeling
       Model to Schema

   Database Security
   Enterprise Database Environment
   Continuous Integration DB – build DB project
Database Design Step


  ER Model




                       Using MS SQL 2008
Logical Design Overview 1
Logical Design Overview 2
Logical Design Overview 3
Logical Design Overview 4
Physical Design
Conceptual Modeling - generalization
Conceptual Modeling -
relationships connectivity
Model to SQL schema
   Data Definition Language
   Why use data definition language?
     Multiple database designers modifying DDL
     Version Control
     Build the database script from scratch (for unit testing)

   Examples
     Create table
     Alter table
     Drop table
     Create/drop view
Model to SQL 1
Model to SQL 2
Enrollment example
Enrollment example
SQL Security
   Secure Configuration
   Authentication
     login/password

   Authorization
     What  you can access
     after you login
   Data Encryption
     Protectingsensitive
     data from internal
     and external hackers
SQL Security - Secure Configuration

   Physically secure the server behind firewall
   Enable only the minimum network protocols
    required
   Use Windows Update to apply patches
   Surface Area Configuration - turn off default SQL
    features
     CLR Integration
     Database mirroring
     Debugging
     Service broker
     E-Mail functions
SQL Security - Authentication
   Use simple connection strings containing user names
    and passwords during development
       Create SQL user for test-user (shows password in web.config &
        app.config)
   Use windows authentication in production with more
    security
   SQL 2008 uses encryption of the channel by default
    (avoid data sniffing)
   Windows Group Policy
       password complexity
       password history
       password age expiration
       lockout after failed attempts
SQL Security - Authorization
   After authentication, what can you access?
   Depends on your roles (owner, admin,
    operator, reader, etc)
   Principal
     Anyindividual, group, or process that can request
     access to a protected resource
   Securable
     object
           that you can secured by granting or
     denying of permissions
SQL Security - Principal
   Windows-level principals
       Domain, local, group
   SQL Server-level principals
       SQL login
       login mapped to a windows login
       login mapped to a certificate
       login mapped to a asymmetric key
   Database-level principals
       Database user
       user mapped to SQL server login
       user mapped to windows login, certificate, asymmetric key
       Database role
       Application role
       etc...
SQL Security - Securables
SQL Security – Dynamical SQL
   Execute(@sql)
     @sql      is a dynamically generate SQL statement
         @sql = ‘select * from course where name = ‘’‘ + @search + ‘’’’
     Open      for SQL injection attack
       @search        = ‘cse’’’; delete from users‘




   Use sp_executesql (@sql, @search_text)
SQL Security – Encryption
   Built-in SQL encryption methods:
     EncryptByPassPhrase(),   DecryptByPassPhrase()
     EncryptByCertificate(), DecryptByCertificate()

   Encryption side-effects:
     Storage(encrypted values are larger size)
     Performance
       Create Index on encrypted data
       Create Index on hash value
Review question
   Difference between db logic design and
    physical design?
   Difference between deny vs revoke?
   Can you think of a generalization scenario for
    your project?
   How many entities will you have in your db
    design?
   Can you identify where you would need
    indexes in your db?
   What db objects would you want to provide
    more security in your db design?
Break time
Enterprise DB – availability & load

   Availability = (Total Units of Time – Downtime) /
    Total Units of Time
     8,760 hours (365 days 24 hours) in a calendar year
     100 hours of downtime during the year

     (8760 – 100) / 8,760 (98.9% uptime)

   Fail-over
       When one db fails, another becomes active
   DB Load Balance
       Distribute data across different servers (multiple
        active databases)
Enterprise DB - architecture
   Clustering
   Log shipping
   Mirroring
   Snapshot replication
   Merge replication
   Peer-to-peer replication (transactional)
   Combinations
     Cluster & mirror
     Cluster & log-shipping
     Cluster & replication
Enterprise DB - clustering
Enterprise DB - log shipping
Enterprise DB - mirroring
Enterprise DB – snapshot replication
Enterprise DB – merge replication
Enterprise DB – peer-to-peer
DB Architecture comparison
Enterprise DB – cluster & mirror
Enterprise DB – cluster & log-shipping
Enterprise DB – cluster & replication
DB for Continuous Integration
   Database needs to be built locally
     For individual C# developers coding locally
     For running unit tests locally
     Database code needs to be in the source control
      (version control)
     Nightly builds on the server

   Solution:
     Database Solution in VS 2010 (cse 136)
     Database build script (*.sql)
     Command shell (CreateDB.cmd)
Review question
   Difference between fail-over and load
    balance?
   What are the pros and cons of clustering?
   What scenario would you recommend logging
    shipping instead of mirroring?
   What scenario would you recommend
    mirroring instead of replication?
Demo
   SQL Mixed mode
   Create SQL user
   Show Day 2 tutorial
   Run .cmd to generate db
Assignment
   Due Day 4
     Create   a database in SQL 2008
     Create a database diagram

     Create SQL Stored Procedures based on your
      activity diagram(s) for your entire project’s
      features.
     Create a database solution using VS 2010 (see
      day 2 tutorial)
     Run the db command script
References
   Database Modeling and Design
   Pro SQL Server 2008 Failover Clustering

More Related Content

PPTX
PPTX
PPTX
PPTX
PPTX
PPTX
PPTX
Microsoft Data Access Technologies
PPTX
CloudConnect 2011 - Building Highly Scalable Java Applications on Windows Azure
Microsoft Data Access Technologies
CloudConnect 2011 - Building Highly Scalable Java Applications on Windows Azure

What's hot (20)

PPTX
Microsoft Database Options
PPTX
Microsoft SQL Server 2008
PPT
Entity Framework Overview
PPT
JDBC Tutorial
PPTX
Java on Windows Azure
PPT
Java database connectivity
PPTX
Entity framework code first
PPTX
Windows Azure AppFabric
PDF
Database and Java Database Connectivity
PDF
jsf2 Notes
PPTX
PPT
PPT
Jdbc (database in java)
PPTX
Java- JDBC- Mazenet Solution
PPTX
Entity Framework Overview
PPTX
Jdbc in servlets
PPTX
Entity framework and how to use it
PPSX
JDBC: java DataBase connectivity
PPTX
Writing simple web services in java using eclipse editor
Microsoft Database Options
Microsoft SQL Server 2008
Entity Framework Overview
JDBC Tutorial
Java on Windows Azure
Java database connectivity
Entity framework code first
Windows Azure AppFabric
Database and Java Database Connectivity
jsf2 Notes
Jdbc (database in java)
Java- JDBC- Mazenet Solution
Entity Framework Overview
Jdbc in servlets
Entity framework and how to use it
JDBC: java DataBase connectivity
Writing simple web services in java using eclipse editor
Ad

Similar to Day2 (20)

PDF
SQLSaturday#290_Kiev_WindowsAzureDatabaseForBeginners
PPT
Dr. Jekyll and Mr. Hyde
PPT
SQLCLR For DBAs and Developers
PPTX
Azure Data platform
PPTX
SQL Server - High availability
PPT
A Primer To Sybase Iq Development July 13
PDF
Be05 introduction to sql azure
PPTX
Azure presentation nnug dec 2010
PDF
SQL or NoSQL, is this the question? - George Grammatikos
PPT
Sql server basics
PPTX
GWAB 2015 - Data Plaraform
PPTX
SEASPC 2011 - SharePoint Security in an Insecure World: Understanding the Fiv...
PPTX
02_DP_300T00A_Plan_implement.pptx
PPTX
SharePoint Security in an Insecure World - AUSPC 2012
PPTX
SPTechCon SFO 2012 - Understanding the Five Layers of SharePoint Security
PPTX
android sqlite
PPTX
Security for SharePoint in an Insecure World - SharePoint Connections Amsterd...
PDF
KoprowskiT_SQLSat230_Rheinland_SQLAzure-fromPlantoBackuptoCloud
PPTX
Microsoft SQL Azure - Building Applications Using SQL Azure Presentation
PDF
Rapid SQL Datasheet - The Intelligent IDE for SQL Development
SQLSaturday#290_Kiev_WindowsAzureDatabaseForBeginners
Dr. Jekyll and Mr. Hyde
SQLCLR For DBAs and Developers
Azure Data platform
SQL Server - High availability
A Primer To Sybase Iq Development July 13
Be05 introduction to sql azure
Azure presentation nnug dec 2010
SQL or NoSQL, is this the question? - George Grammatikos
Sql server basics
GWAB 2015 - Data Plaraform
SEASPC 2011 - SharePoint Security in an Insecure World: Understanding the Fiv...
02_DP_300T00A_Plan_implement.pptx
SharePoint Security in an Insecure World - AUSPC 2012
SPTechCon SFO 2012 - Understanding the Five Layers of SharePoint Security
android sqlite
Security for SharePoint in an Insecure World - SharePoint Connections Amsterd...
KoprowskiT_SQLSat230_Rheinland_SQLAzure-fromPlantoBackuptoCloud
Microsoft SQL Azure - Building Applications Using SQL Azure Presentation
Rapid SQL Datasheet - The Intelligent IDE for SQL Development
Ad

Recently uploaded (20)

PPTX
Pharmacology of Heart Failure /Pharmacotherapy of CHF
PPTX
Final Presentation General Medicine 03-08-2024.pptx
PDF
FourierSeries-QuestionsWithAnswers(Part-A).pdf
PDF
Abdominal Access Techniques with Prof. Dr. R K Mishra
PDF
3rd Neelam Sanjeevareddy Memorial Lecture.pdf
PDF
Microbial disease of the cardiovascular and lymphatic systems
PPTX
Introduction_to_Human_Anatomy_and_Physiology_for_B.Pharm.pptx
PPTX
BOWEL ELIMINATION FACTORS AFFECTING AND TYPES
PPTX
master seminar digital applications in india
PPTX
school management -TNTEU- B.Ed., Semester II Unit 1.pptx
PPTX
Renaissance Architecture: A Journey from Faith to Humanism
PPTX
PPH.pptx obstetrics and gynecology in nursing
PDF
Anesthesia in Laparoscopic Surgery in India
PPTX
human mycosis Human fungal infections are called human mycosis..pptx
PDF
Basic Mud Logging Guide for educational purpose
PDF
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
PDF
01-Introduction-to-Information-Management.pdf
PDF
Pre independence Education in Inndia.pdf
PDF
Physiotherapy_for_Respiratory_and_Cardiac_Problems WEBBER.pdf
PDF
Chapter 2 Heredity, Prenatal Development, and Birth.pdf
Pharmacology of Heart Failure /Pharmacotherapy of CHF
Final Presentation General Medicine 03-08-2024.pptx
FourierSeries-QuestionsWithAnswers(Part-A).pdf
Abdominal Access Techniques with Prof. Dr. R K Mishra
3rd Neelam Sanjeevareddy Memorial Lecture.pdf
Microbial disease of the cardiovascular and lymphatic systems
Introduction_to_Human_Anatomy_and_Physiology_for_B.Pharm.pptx
BOWEL ELIMINATION FACTORS AFFECTING AND TYPES
master seminar digital applications in india
school management -TNTEU- B.Ed., Semester II Unit 1.pptx
Renaissance Architecture: A Journey from Faith to Humanism
PPH.pptx obstetrics and gynecology in nursing
Anesthesia in Laparoscopic Surgery in India
human mycosis Human fungal infections are called human mycosis..pptx
Basic Mud Logging Guide for educational purpose
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
01-Introduction-to-Information-Management.pdf
Pre independence Education in Inndia.pdf
Physiotherapy_for_Respiratory_and_Cardiac_Problems WEBBER.pdf
Chapter 2 Heredity, Prenatal Development, and Birth.pdf

Day2

  • 1. CSE 136 Lecture 2  Database design steps for the enterprise  Logical Design Overview  Physical Design  Logical design in detail  Conceptual Modeling  Model to Schema  Database Security  Enterprise Database Environment  Continuous Integration DB – build DB project
  • 2. Database Design Step ER Model Using MS SQL 2008
  • 8. Conceptual Modeling - generalization
  • 10. Model to SQL schema  Data Definition Language  Why use data definition language?  Multiple database designers modifying DDL  Version Control  Build the database script from scratch (for unit testing)  Examples  Create table  Alter table  Drop table  Create/drop view
  • 15. SQL Security  Secure Configuration  Authentication  login/password  Authorization  What you can access after you login  Data Encryption  Protectingsensitive data from internal and external hackers
  • 16. SQL Security - Secure Configuration  Physically secure the server behind firewall  Enable only the minimum network protocols required  Use Windows Update to apply patches  Surface Area Configuration - turn off default SQL features  CLR Integration  Database mirroring  Debugging  Service broker  E-Mail functions
  • 17. SQL Security - Authentication  Use simple connection strings containing user names and passwords during development  Create SQL user for test-user (shows password in web.config & app.config)  Use windows authentication in production with more security  SQL 2008 uses encryption of the channel by default (avoid data sniffing)  Windows Group Policy  password complexity  password history  password age expiration  lockout after failed attempts
  • 18. SQL Security - Authorization  After authentication, what can you access?  Depends on your roles (owner, admin, operator, reader, etc)  Principal  Anyindividual, group, or process that can request access to a protected resource  Securable  object that you can secured by granting or denying of permissions
  • 19. SQL Security - Principal  Windows-level principals  Domain, local, group  SQL Server-level principals  SQL login  login mapped to a windows login  login mapped to a certificate  login mapped to a asymmetric key  Database-level principals  Database user  user mapped to SQL server login  user mapped to windows login, certificate, asymmetric key  Database role  Application role  etc...
  • 20. SQL Security - Securables
  • 21. SQL Security – Dynamical SQL  Execute(@sql)  @sql is a dynamically generate SQL statement  @sql = ‘select * from course where name = ‘’‘ + @search + ‘’’’  Open for SQL injection attack  @search = ‘cse’’’; delete from users‘  Use sp_executesql (@sql, @search_text)
  • 22. SQL Security – Encryption  Built-in SQL encryption methods:  EncryptByPassPhrase(), DecryptByPassPhrase()  EncryptByCertificate(), DecryptByCertificate()  Encryption side-effects:  Storage(encrypted values are larger size)  Performance  Create Index on encrypted data  Create Index on hash value
  • 23. Review question  Difference between db logic design and physical design?  Difference between deny vs revoke?  Can you think of a generalization scenario for your project?  How many entities will you have in your db design?  Can you identify where you would need indexes in your db?  What db objects would you want to provide more security in your db design?
  • 25. Enterprise DB – availability & load  Availability = (Total Units of Time – Downtime) / Total Units of Time  8,760 hours (365 days 24 hours) in a calendar year  100 hours of downtime during the year  (8760 – 100) / 8,760 (98.9% uptime)  Fail-over  When one db fails, another becomes active  DB Load Balance  Distribute data across different servers (multiple active databases)
  • 26. Enterprise DB - architecture  Clustering  Log shipping  Mirroring  Snapshot replication  Merge replication  Peer-to-peer replication (transactional)  Combinations  Cluster & mirror  Cluster & log-shipping  Cluster & replication
  • 27. Enterprise DB - clustering
  • 28. Enterprise DB - log shipping
  • 29. Enterprise DB - mirroring
  • 30. Enterprise DB – snapshot replication
  • 31. Enterprise DB – merge replication
  • 32. Enterprise DB – peer-to-peer
  • 34. Enterprise DB – cluster & mirror
  • 35. Enterprise DB – cluster & log-shipping
  • 36. Enterprise DB – cluster & replication
  • 37. DB for Continuous Integration  Database needs to be built locally  For individual C# developers coding locally  For running unit tests locally  Database code needs to be in the source control (version control)  Nightly builds on the server  Solution:  Database Solution in VS 2010 (cse 136)  Database build script (*.sql)  Command shell (CreateDB.cmd)
  • 38. Review question  Difference between fail-over and load balance?  What are the pros and cons of clustering?  What scenario would you recommend logging shipping instead of mirroring?  What scenario would you recommend mirroring instead of replication?
  • 39. Demo  SQL Mixed mode  Create SQL user  Show Day 2 tutorial  Run .cmd to generate db
  • 40. Assignment  Due Day 4  Create a database in SQL 2008  Create a database diagram  Create SQL Stored Procedures based on your activity diagram(s) for your entire project’s features.  Create a database solution using VS 2010 (see day 2 tutorial)  Run the db command script
  • 41. References  Database Modeling and Design  Pro SQL Server 2008 Failover Clustering