1 / 120

Бази данни Системи за управление на бази данни ADO.NET LINQ to SQL

Бази данни Системи за управление на бази данни ADO.NET LINQ to SQL. Александър Далемски m usashi.bg@gmail.com. За какво ще говорим. Релационни бази данни Проектиране на бази данни Structured Query Language (SQL) ADO.NET Language INtegrated Query (LINQ) LINQ to SQL. Бази данни.

quyn-gray
Download Presentation

Бази данни Системи за управление на бази данни ADO.NET LINQ to SQL

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Бази данни Системи за управление на бази данни ADO.NET LINQ to SQL Александър Далемски musashi.bg@gmail.com

  2. За какво ще говорим • Релационни бази данни • Проектиране на бази данни • Structured Query Language (SQL) • ADO.NET • Language INtegrated Query (LINQ) • LINQ to SQL

  3. Бази данни • Структурирана информация • Взаимосвързана информация • Организирана в удобен за софтуерна обработка вид

  4. Релационни бази данни • Най-широко разпространени • Организират информацията във формално дефинирани таблици

  5. Таблица (релация) • Колони (полета, атрибути) – име и дефиниционно множество (възможни стойности) • Редове (записи, n-торки) • Редовете и колоните нямат определена наредба

  6. Първичен ключ (primary key) • Една или повече колони • Определя еднозначно всеки запис • Препоръчително е всяка таблица да има първичен ключ

  7. Външен ключ (foreign key) • Една или повече колони • Асоциира се с първичния ключ на някоя таблица • Реализира зависимост между записите в двете таблици • Множество записи от вторичната таблица се асоциират с един запис от първичната таблица

  8. Индекс (index) • Оптимизира достъпа до записи по определен критерий • Осигурява бързодействие за критични за софтуера манипулации с данните

  9. Схема на базата данни (schema) • Описва структурата на данните • Таблици • Колони • Ключове и други ограничения • Индекси

  10. Системи за управление на бази данни (DBMS) • Позволяват създаването, поддръжката и употребата на бази данни • Силно оптимизирани за ефективност • Позволяват дефиниране и изпълнение на сложни действия върху данните и създаване на проекции на данните • Някои са предназначени за големи софтуерни системи (enterprise DBMS), други – за малкиприложения (lightweight DBMS)

  11. Някои разпространени СУБД • Microsoft SQL Server • Oracle • IBM DB2 • MySQL • PostgreSQL • Microsoft Access • SQLite

  12. Проектиране на бази данни • Модел на предметната област • Трансформиране на модела в база данни • Нормализиране на базата данни

  13. Модел на обектите и зависимостите (Entity/Relationship Model) • Типове обекти (entity types) • Зависимости (relationship sets) • Атрибути

  14. Видове зависимости • Едно-към-едно • Едно-към-много • Много-към-много

  15. Атрибути • Характеризират множество обекти или зависимост • Ключови атрибути – участват в еднозначното определяне на обекти от множеството

  16. Примерен проект: Здравословно хранене • Производители • Марки • Продукти • Хранителни факти • Съставки

  17. Name Country Name Description 1 n producer of Producer Brand E/R модел: Здравословно хранене 1 brand of n Name Ingredient contains Product Energy value m n Proteins Name Amount Fats Carbohydrates

  18. Изграждане на базата данни • Множество обекти -> таблица • Зависимости едно-към-едно и едно-към-много -> външни ключове • Зависимости много-към-много -> свързваща таблица с външни ключове

  19. База данни: Здравословно хранене

  20. Нормализиране на базата данни • Премахване на излишни повторения на данни • Премахване на зависимости между данните • Избягване на аномалии

  21. Нормални форми • Формални критерии за нормалност на таблици • Всяка следваща нормална форма допълва предишната с по-строги критерии • Полезни, но не винаги постижими или оптимални

  22. Малко дефиниции • Суперключ - множество от колони в таблица, което еднозначно определя всеки запис • Минимален суперключ – суперключ, никое подмножество на който не е суперключ • Неключова колона – колона, която не участва в никой минимален суперключ на таблицата

  23. Първа нормална форма (1NF) Няма колона, която може да съдържа множества. Таблицата не съдържа подтаблици.

  24. Първа нормална форма (1NF)

  25. Първа нормална форма (1NF)

  26. Втора нормална форма (2NF) Не съществуват минимален суперключ, за който стойностите на някоя неключова колона да се определят еднозначно от негово подмножество. Всяка неключова колона се определя еднозначно от целия минимален суперключ.

  27. Втора нормална форма (2NF)

  28. Втора нормална форма (2NF)

  29. Други нормални форми • 3NF, BCNF, 4NF, 5NF • Няма да ги разглеждаме в подробности • За повечето таблици е препоръчителна BCNF

  30. Structured Query Language (SQL) • Специализиран език за програмиране • Управление и работа с данните в СУБД • Дели се на три части: DDL, DCL и DML • Стандартизиран, но всяка СУБД поддържа собствен диалект • Microsoft SQL Server използва T-SQL диалекта

  31. Синтаксис на SQL • Декларативен език за програмиране • Съждения • Не се разграничава главни и малки букви • По конвенция ключовите думи се пишат с главни букви

  32. Идентификатори • Поредици от букви, долни черти, цифри, която не започва с цифра • Поредици от символи, заградени в квадратни скоби • Поредици от символи, заградени в двойни кавички • test, TEST, TeSt, [test], [TEST], "test", "TEST"

  33. Запазени и стандартни думи • Могат да се ползват като идентификатори, когато се заградят в квадратни скоби или кавички • Някои от тях могат да се ползват като идентификатори и без да бъдат заградени, когато не са в подходящия контекст (но не е препоръчително)

  34. Променливи • Незаградени идентификатори с префикс @ • Декларират се с DECLARE • Обхват - блокът от съждения, в който са дефинирани

  35. Data Definition Language (DDL) • Създаване, модификация, изтриване на таблици, изгледи, съхранени процедури, функции, тригери, индекси, потребителски типове данни • Описване и модифициране на схемата на базата данни • Започват с CREATE, ALTER, DROPилиTRUNCATE

  36. Създаване на таблица CREATETABLE[Producers]([ProducerID]intNOTNULLIDENTITY(1, 1),[Name]nvarchar(100)NOTNULL,[Country]nvarchar(100)NULL,CONSTRAINT[PK_Producers]PRIMARYKEY ([ProducerID]))GO

  37. Създаване на таблица CREATETABLE[Brands]([BrandID]intNOTNULLIDENTITY(1, 1),[ProducerID]intNOTNULL,[Name]nvarchar(100)NOTNULL,CONSTRAINT[PK_Brands]PRIMARYKEY ([BrandID]),CONSTRAINT[FK_Brands_Producer]FOREIGNKEY ([ProducerID])REFERENCES[Producers]([ProducerID])ONDELETECASCADE)GO

  38. Модифициране на таблица ALTERTABLE[Brands]ADD[Description]nvarchar(MAX)NULLGO

  39. Изтриване на таблица DROPTABLE[Brands]GO

  40. Изпразване съдържанието на таблица TRUNCATETABLE[Brands]GO

  41. Съхранени процедури CREATEPROCEDURE[CreateProducer]@vNamenvarchar(100),@vCountrynvarchar(100),@vProducerIDintOUTPUTASINSERTINTO[Producers]([Name],[Country])VALUES (@vName,@vCountry)SELECT@vProducerID=SCOPE_IDENTITY()GO

  42. Функции CREATEFUNCTION[GetProducerBrandsCount](@vProducerIDint)RETURNSintBEGINDECLARE@varCountintSELECT@varCount=COUNT(*)FROM[Brands]WHERE ([ProducerID]=@vProducerID)RETURN@varCountEND

  43. Изгледи CREATEVIEW[BrandProducers]ASSELECT[B].[BrandID],[B].[Name]AS[BrandName],[P].[Name]AS[ProducerName]FROM[Brands]AS[B]INNERJOIN[Producers]AS[P]ON ([B].[ProducerID]= [P].[ProducerID])GO

  44. Индекси CREATEINDEX[IX_Producers]ON[Producers]([Country]ASC,[Name]ASC)GO DROPINDEX[IX_Producers]ON[Producers]GO

  45. Data Control Language (DCL) • Управление на достъпа до обекти в базата данни • Започват с GRANT, REVOKEили DENY

  46. Data Control Language (DCL) GRANTSELECT,INSERT,UPDATE,DELETEON[Producers]TO[someone]GO DENYINSERT,UPDATE,DELETEON[Producers]TO[someone]GO REVOKEDELETEON[Producers]ТО[someone]GO

  47. Data Manipulation Language (DML) • Записване, променяне, изтриване и извличане на данни • Приложенията, използващи бази данни, използват предимно DML • Започват с SELECT,INSERT, UPDATEили DELETE

  48. SELECT съждения • Извличат информация от базата данни • Най-често използваните съждения • Резултатът обикновено е набор от записи (rowset) • SELECT...FROM...WHERE...GROUPBY...HAVING...ORDERBY...

  49. SELECT и FROM • SELECTопределя колоните, които да участват в резултата • FROM определя таблицата (или таблиците), от която се извличат данните • SELECT*FROM[Producers] • SELECT[BrandID],[Name]FROM[Brands]

  50. Филтриране • WHEREпосочва критерий (или критерии), по който да се отсеят записите в резултата • =, <>, <, <=, >, >= • EXISTS, IS NULL, LIKE, IN • NOT, OR, AND • SELECT*FROM[Products]WHERE ([ProductID]> 10) • SELECT*FROM[Products]WHERE ([BrandID]= 2) • SELECT*FROM[Brands]WHERE ([Name]IN(N'Coca-Cola',N'Fanta',N'Sprite',N'Schweppes'))AND([Description]ISNOTNULL)

More Related