[communityheros]ado.net entityframework
Post on 05-Dec-2015
231 Views
Preview:
DESCRIPTION
TRANSCRIPT
ADO.NET Entity Framework 소개
한용희Microsoft Visual C# MVP
http://blog.naver.com/woom333
2008.2.16
현실적인 문제들
• 데이터베이스는 검색과 저장하는데 최적화• 애플리케이션은 기능 구현에 초점• DBA 는 데이터에 관심• 개발자는 코드에 관심
DAL ( Data Access Layer ) 를 통한 추상화
데이터 처리에 관한 해결책
• 성능문제와 정규화로 인한 데이터베이스 변화– Northwind Adventureworks
• 물리적 모델의 변화 애플리케이션 코드에 영향
• 계층적 추상화 ( Level of abstraction )• 엔터티 데이터 모델 (Entity Data Model, EDM)
개념적 모델 (Conceptual Model)
인간이 생각하는 개념 또는 정보의 세계에서는 의미있는 정보의 단위 .
실세계에 존재하는 유형· 무형의 정보가 모인 것을 애트리뷰트(attribute) 라고 하며 , 연관된 애트리뷰트가 모인 것을 엔티티 (실체라고 번역 ) 라 하는데 , 구체적으로 인간이 생각하는 개념 또는 정보의 세계에서는 의미있는 하나의 정보 단위를 말한다 .
두산 백과 사전
개념적 모델링의 중요성
물리적 모델 (Physical model)
논리적 모델 (Logical model)
개념적 모델 (Conceptual model)
엔터티 (Entity) 와 관계 (relation) 로 표현
엔터티에 대한 정규화 , 관계를 외래키로 표현
실제 테이블에 대한 파티셔닝이나 인덱싱 표현
간과 되기 쉬운 부분애플리케이션 , 오브젝트 자체에 더 집중하자
ADO.NET Data ProvidertADO.NET Data Provider
Entity Framework Over-view
ADO.NET Data Provider
Object Services
LINQ to Entities
EDMMetaData
Store Schema
ConceptualSchema
ObjectMetadata
O-CMap
C-SMap
CQT
DataReader
DataReader
IEnumerable<T>
ESQL
NativeSQL
CQT
ESQL
LINQ
EntityClient Data Provider
Client View Engine CQT
eSQL, Object Services, LINQ to Entities 비교• LINQ to Entities
– 강력한 타입 지원– 컴파일 타임에 구문 체크– 인텔리센스 기능
• Object Services– 저장 기능– 변경 추적 기능– 객체로 리턴– eSQL 또는 LINQ to Entities 쿼리 구문 모두 가능
• eSQL– 동적 /AdHoc 쿼리– 저장 기능
eSQL, Object Services, LINQ to Entities
Demo
Entity Framework 장점
• 풍부한 애플리케이션 모델링– 상속 지원– 다대다 관계 지원– Complex 타입 지원
• 풍부한 매핑 지원– 엔티디가 여러 테이블에 분산 될 수 있다 .– 다양한 상속 옵션 (TPH, TPT, TPC)– 저장 프로시저 / TVF(Table Valued Functions) 지원
• 애플리케이션 모델과 저장 스키마간의 디커플링– 한 저장 스키마에 대한 다중 모델 가능– 하나의 모델이 다중 저장 스키마 가능– 모델과 저장 스키마 간의 독립적인 수정 가능
Table Per Hierarchy(TPH)
People
ID(PK)
DateCreated
Birthday
FirstName
LastName
LoginName
Password
Title
DateHired
ObjectType
Person
ID(PK)
DateCreated
Birthday
FirstName
LastName
User:Person
LoginName
Password
Employee:User
Title
DateHired
Database Model Entity ModelMapping
ObjectType=“Person”
ObjectType=“User”
ObjectType=“Employee”
Table Per Type (TPT)
People
ID(PK)
DateCreated
Birthday
FirstName
LastName
Person
ID(PK)
DateCreated
Birthday
FirstName
LastName
User:Person
LoginName
Password
Employee:User
Title
DateHired
Database Model Entity ModelMapping
Users
PersonID(PK)
LoginName
Password
Employees
PersonID(PK)
Title
DateHired
상속
Table Per Class(TPC)People
ID(PK)
DateCreated
Birthday
FirstName
LastName
Person
ID(PK)
DateCreated
Birthday
FirstName
LastName
User:Person
LoginName
Password
Employee:User
Title
DateHired
Database Model Entity ModelMapping
People
PersonID(PK)
DateCreated
Birthday
FirstName
LastName
LoginName
Password
People
PersonID(PK)
DateCreated
Birthday
FirstName
LastName
LoginName
Password
Title
DateHired
Entity Splitting
Person
ID(PK)
DateCreated
Birthday
FirstName
LastName
User
ID(PK)
DateCreated
Birthday
FirstName
LastName
LoginName
Password
Database Model Entity ModelMapping
Users
PersonID(PK)
LoginName
Password
유연한 매핑
Demo
LINQ to SQL VS. LINQ to Entities• LINQ to SQL – 강력한 타입형 데이터베이스 (Strongly Typed
Database)– 빠른 개발을 해야 할때– 속도가 중요할 때 – Microsoft SQL Server 제품군에 대한 직접 매핑– Microsoft Visual Studio 2008 에 포함
• LINQ to Entities – 기존에 있는 스키마에 대한 유연한 매핑– 엔터프라이즈급에서 사용– Microsoft SQL Server 와 다른 DB 에 대한 유연한 매핑– Microsoft Visual Studio 2008 update 를 통해 배포 예정
다른 데이터베이스 프로바이더 제공 내역
• Core Lab - Providing connectivity to Oracle, MySQL, PostgreSQL and SQLite databases
• IBM - Providing connectivity to both IBM DB2 data server and Informix Dy-namic Server (IDS) databases
• MySQL AB - Providing connectivity to MySQL databases• Npgsql - Providing connectivity to PostgreSQL database versions 7.3+ and
8.x• OpenLink Software - Providing connectivity to Oracle, Informix, Ingres,
Sybase, MySQL, PostgreSQL, DB2, Progress and Microsoft SQL Server data-bases, and any data source accessible via OpenLink ODBC or JDBC bridge drivers
• Phoenix Software International - Providing connectivity to SQLite databases• Sybase - Providing connectivity to SQL Anywhere databases• VistaDB Software - Providing connectivity to VistaDB databases• DataDirect Technologies - Providing connectivity to multiple data stores in-
cluding Oracle, Sybase, Microsoft SQL Server and DB2 via DataDirect Con-nect® for ADO.NET
• Firebird - Providing connectivity to Firebird databases
http://blog.naver.com/woom333PresentationDemo Sources
http://blog.naver.com/woom333/60047172335C#개발자를 위한 VS 2008 동영상 모음
감사합니다
top related