database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
ㆍLDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
LDAP Q&A 237 게시물 읽기
No. 237
Re: 메타 인포메이션 (1)
작성자
박근오
작성일
2001-01-08 13:05
조회수
11,598

2. 사용되는 메타 인포메이션

***

좀있다 언급될 거의 모든것은 예제로 설명된다. 이 예제는 backsql/rdbms_depend 디렉토리에 위치하고 있고,

Oracle,MSSQL,MySQL을 위한 샘플 데이타 베이스를 생성하기위한 스크립트를 포함하고 있다.

***

우선 제일 먼저 필요한 것은 여러분의 RDBMS정보를 표현할수 있는 LDAP objectclass들이 무엇이 있을까하는

것이다. (어떤 LDAP objectclass들이 RDBMS정보를 표현할수 있을까?)

 

가장 간단한 방법은 relational 스키마를 디자인할때, ER다이어그램에서 각각의 Entity에 대한 objectclass를

생성하는 것이다. 어떠한 관계형 스키마도 ,그것이 얼마나 normalize되어 있든, 여러분의 어플리케이션 도메인에 대한

모델링을 거쳐서 디자인 된다. 그리고 이것은 단지 normalized스키마의 테이블이 아니라 entity라는 용어로 사용된다.

이 말의 의미는 모든 instance에 대한 모든 attribute에 대해서 그 값을 로딩하는 효과적인 SQL쿼리가 존재한다는

뜻이된다.

또한 inetOrgPerson과 같은 표준 스키마들을 따르는 objectclass들을 원할지도 모르겠다.

그럼에도 불구하고, 역시나 우리는 LDAP operation을 일련의 SQL쿼리로 바꾸기위한 방법을 정의해 주어야만 한다.

SEARCH 에 대해서 생각해보면...

 

 

Example: 우리가 우리 조직(organization)내에서 일하는 사람들(persons) 에대해서 정보를 저장하고 있다고 가정하자.

 

<pre>

PERSONS

----------

id integer

first_name varchar

last_name varchar

middle_name varchar

 

PHONES

----------

id integer

pers_id integer references persons(id)

phone

...

</pre>

 

(PHONES 테이블은 persons와 관련한 telephone number를 가지고 있다.) person은 여러개의 number를 가질수가 있고, 그래서

PHONES는 일치하는 pers_id에 대해서 몇개의 레코드를 가지거나 또는 아예 가지지 않는다. (위에서 보시면 알수 있듯이

pers_id가 PHONES테이블의 foreign key로 설정이 되어 있는것을 풀어서 말한 것입니다. 그러므로 LDAP와 같이 phone 항목에

0개또는 여러개의 value를 가질수가 있게 됩니다. ) 이러한 정보를 표현하기 위한 LDAP objectclass는 다음과 같다.

 

person

-------

MUST cn

MAY telephoneNumber

MAY firstName

MAY lastName

...

 

(위에 보시는 것은 역시나 openldap 버전2대의 스키마 표현형식입니다.)

만일 주어진 person ID로 모든 값의 cn attribute를 가져올려고 하면, 다음과 같은 쿼리를 날리면 된다.

SELECT CONCAT(persons.first_name,' ',persons.last_name) as cn FROM persons WHERE persons.id=?

 

telephoneNumber에 대해서는 :

SELECT phones.phone as telephoneNumber FROM persons,phones WHERE persons.id=phones.pers_id and persons.id=?

 

만약에 (telephoneNumber=123*)같은 검색 필터로 LDAP서비스를 하고 싶다면 다음과 같이 한다.:

SELECT ... FROM persons,phones WHERE persons.id=phones.pers_id and persons.id=? and phones.phone like '123%'

 

그러므로, 만일 우리가 어떤 테이블이 각 attribute에 대한 값을 가졌고,어떻게 이 테이블들을 join하고 이러한 값을

정렬하면되는 지에 대한 정보를 가지고 있다면, 우리는 이러한 sql statement를 자동으로 생성할수 있고, 그러한

search filter에 대해서 SQL WHERE 문으로 바꿀수 있게 할수가 있다.

[Top]
No.
제목
작성자
작성일
조회
246ldap version 2 와 version 3의 차이는?
강윤환
2001-01-10
10099
252┕>Re: ldap version 2 와 version 3의 차이는?
정재익
2001-01-11 20:35:15
11128
258 ┕>Re: Re: ldap version 2 와 version 3의 차이는?
김경하
2001-01-15 14:36:26
11293
244LDAP 서버 개발자 구함
김형근
2001-01-09
9880
243LDAP에서 입력한 데이타를 몽땅 삭제하는 방법?
윤지영
2001-01-09
9774
245┕>Re: LDAP에서 입력한 데이타를 몽땅 삭제하는 방법?
박근오
2001-01-09 14:54:53
10878
236RDBMS를 Back-SQL로 쓰는 목적.
박근오
2001-01-08
10093
237┕>Re: 메타 인포메이션 (1)
박근오
2001-01-08 13:05:51
11598
238┕>Re: 메타 인포메이션 (2)
박근오
2001-01-08 13:02:39
11160
239┕>잘읽었습니다. 현재 NOVELL
송상준
2001-01-08 13:42:33
10493
234이게 빠른건지 느린건지 ...?
임오근
2001-01-08
11273
242┕>Re: 이게 빠른건지 느린건지 ...?해결^^
임오근
2001-01-08 19:30:43
11995
227LDAP의 데이터 백업 및 복구 방법
백종규
2001-01-06
12521
228┕>Re: LDAP의 데이터 백업 및 복구 방법
박근오
2001-01-06 11:13:48
12635
232┕>Re: LDAP의 데이터 백업 및 복구 방법
임오근
2001-01-06 14:18:22
12070
225오늘 LDAPp 1000000명 사용자를 만드는데
송상준
2001-01-05
11167
231┕>Re: 오늘 LDAPp 1000000명 사용자를 만드는데
박근오
2001-01-06 13:17:05
12197
235 ┕>감사합니다. 저는 허접입니다. 시작 단계이고요...
송상준
2001-01-08 10:09:03
12054
240  ┕>서칭 한번 해보세요!!
황명호
2001-01-08 14:24:08
11967
241 ┕>Re: Re: 오늘 LDAPp 1000000명 사용자를 만드는데--&gt; 파일 어디 있어요..
서강춘
2001-01-08 16:15:39
12310
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.049초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다