ADO.NET Entity Framework
Download
Report
Transcript ADO.NET Entity Framework
•
•
•
•
데이터베이스는 검색과 저장하는데 최적화
애플리케이션은 기능 구현에 초점
DBA는 데이터에 관심
개발자는 코드에 관심
DAL ( Data Access Layer )를 통한 추상화
• 성능문제와 정규화로 인한 데이터베이스 변화
– Northwind Adventureworks
• 물리적 모델의 변화 애플리케이션 코드에 영향
• 계층적 추상화 ( Level of abstraction )
• 엔터티 데이터 모델 (Entity Data Model, EDM)
개념적 모델 (Conceptual Model)
인간이 생각하는 개념
또는 정보의 세계에서
는 의미있는 정보의 단
위.
실세계에 존재하는 유
형·무형의 정보가 모인
것을 애트리뷰트
(attribute)라고 하며, 연
관된 애트리뷰트가 모
인 것을 엔티티(실체라
고 번역)라 하는데, 구체
적으로 인간이 생각하
는 개념 또는 정보의 세
계에서는 의미있는 하
나의 정보 단위를 말한
다.
두산 백과 사전
개념적 모델(Conceptual model)
엔터티(Entity) 와 관계(relation)로 표현
간과 되기 쉬운 부분
애플리케이션, 오브젝트 자체에 더 집중하자
논리적 모델(Logical model)
엔터티에 대한 정규화, 관계를 외래키로 표현
물리적 모델(Physical model)
실제 테이블에 대한 파티셔닝이나 인덱싱 표현
LINQ
ESQL
LINQ to Entities
IEnumerable<T>
Object
Metadata
Object Services
ESQL
CQT
Client View Engine
DataReader
CQT
EntityClient Data Provider
Native
SQL
CQT
EDM
MetaData
DataReader
ADO.NET
Data
Provider
ADO.NET
Data
ADO.NET Data Provider
Providert
O-C
Map
Conceptual
Schema
C-S
Map
Store Schema
• LINQ to Entities
– 강력한 타입 지원
– 컴파일 타임에 구문 체크
– 인텔리센스 기능
• Object Services
– 저장 기능
– 변경 추적 기능
– 객체로 리턴
– eSQL 또는 LINQ to Entities 쿼리 구문 모두 가능
• eSQL
– 동적/AdHoc 쿼리
– 저장 기능
• 풍부한 애플리케이션 모델링
– 상속 지원
– 다대다 관계 지원
– Complex 타입 지원
• 풍부한 매핑 지원
– 엔티디가 여러 테이블에 분산 될 수 있다.
– 다양한 상속 옵션 (TPH, TPT, TPC)
– 저장 프로시저 / TVF(Table Valued Functions) 지원
• 애플리케이션 모델과 저장 스키마간의 디커플링
– 한 저장 스키마에 대한 다중 모델 가능
– 하나의 모델이 다중 저장 스키마 가능
– 모델과 저장 스키마 간의 독립적인 수정 가능
Database Model
Mapping
Person
People
ID(PK)
Entity Model
ObjectType=“Person”
ID(PK)
DateCreated
DateCreated
Birthday
Birthday
FirstName
FirstName
LastName
LastName
LoginName
Password
ObjectType=“User”
Title
User:Person
LoginName
DateHired
Password
ObjectType
ObjectType=“Employee”
Employee:User
Title
DateHired
Database Model
Mapping
Entity Model
People
Person
ID(PK)
ID(PK)
DateCreated
DateCreated
Birthday
Birthday
FirstName
FirstName
LastName
LastName
Users
PersonID(PK)
LoginName
Password
Employees
PersonID(PK)
Title
DateHired
User:Person
LoginName
Password
Employee:User
Title
DateHired
Database Model
Mapping
Entity Model
People
ID(PK)
DateCreated
Birthday
FirstName
Person
ID(PK)
DateCreated
LastName
Birthday
People
FirstName
PersonID(PK)
DateCreated
LastName
Birthday
FirstName
LastName
LoginName
User:Person
Password
LoginName
People
Password
PersonID(PK)
DateCreated
Birthday
FirstName
LastName
LoginName
Password
Title
DateHired
Employee:User
Title
DateHired
Database Model
Mapping
Entity Model
Person
User
ID(PK)
ID(PK)
DateCreated
DateCreated
Birthday
Birthday
FirstName
FirstName
LastName
LastName
LoginName
Users
PersonID(PK)
LoginName
Password
Password
• LINQ to SQL – 강력한 타입형 데이터베이스(Strongly Typed Databa
se)
–
–
–
–
빠른 개발을 해야 할때
속도가 중요할 때
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 datab
ases
IBM - Providing connectivity to both IBM DB2 data server and Informix Dynamic S
erver (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, My
SQL, PostgreSQL, DB2, Progress and Microsoft SQL Server databases, 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 including
Oracle, Sybase, Microsoft SQL Server and DB2 via DataDirect Connect® for ADO.N
ET
Firebird - Providing connectivity to Firebird databases
http://blog.naver.com/woom333
Presentation
Demo Sources
http://blog.naver.com/woom333/60047172335
C#개발자를 위한 VS 2008 동영상 모음
감사합니다