K 데이터
오라클 서버의 구조
오라클 서버는 데이터베이스 인스턴스와 데이터베이스 파일로 구성됩니다. 인스턴스는 메모리 영역(SGA, PGA)과 프로세스(백그라운드 프로세스, 서버 프로세스)로 구성되며, 데이터베이스 파일은 디스크에 저장된 실제 데이터와 제어 정보를 담고 있습니다. 이 두 부분이 함께 작동하여 사용자의 요청을 처리하고 데이터를 저장하며, 리스너는 클라이언트의 연결 요청을 받아 인스턴스의 서버 프로세스와 연결시켜주는 역할을 합니다.
주요 구성 요소
- 물리적 파일: 디스크에 저장된 실제 데이터 파일, 리두 로그 파일(Redo Log File), 제어 파일(Control File) 등으로 구성됩니다.
- 데이터의 영구 저장소: 역할을 하며, 인스턴스가 운영하는 데이터의 물리적 기반이 됩니다.
- 물리적 파일: 디스크에 저장된 실제 데이터 파일, 리두 로그 파일(Redo Log File), 제어 파일(Control File) 등으로 구성됩니다.
- 메모리 영역:
- SGA(System Global Area): 여러 프로세스에 의해 공유되는 메모리 영역으로, 데이터 버퍼 캐시, 리두 로그 버퍼, 쉐어드 풀(Shared Pool) 등이 포함됩니다.
- PGA(Program Global Area): 각 서버 프로세스에 할당되는 개인적인 메모리 영역으로, 작업 수행에 필요한 정보를 저장합니다.
- SGA(System Global Area): 여러 프로세스에 의해 공유되는 메모리 영역으로, 데이터 버퍼 캐시, 리두 로그 버퍼, 쉐어드 풀(Shared Pool) 등이 포함됩니다.
- 프로세스:
- 백그라운드 프로세스: 데이터베이스의 지속적인 작업을 수행하며, 메모리 구조를 관리하고 데이터를 디스크에 기록하는 등의 역할을 합니다.
- 서버 프로세스: 클라이언트의 SQL 요청을 받아 처리하며, 데이터베이스에 접근합니다.
- 백그라운드 프로세스: 데이터베이스의 지속적인 작업을 수행하며, 메모리 구조를 관리하고 데이터를 디스크에 기록하는 등의 역할을 합니다.
- 메모리 영역:
- 사용자 프로세스: 클라이언트 도구(SQL*Plus, SQL Developer 등)를 통해 SQL 쿼리를 생성하고 서버로 전송하는 프로세스입니다.
- 리스너: 오라클 서버의 시작 시점에 기동되어 클라이언트의 연결 요청을 기다립니다. 요청을 받으면 해당 요청을 처리할 서버 프로세스를 생성하고 연결을 설정하는 역할을 합니다.
- 사용자 프로세스: 클라이언트 도구(SQL*Plus, SQL Developer 등)를 통해 SQL 쿼리를 생성하고 서버로 전송하는 프로세스입니다.
데이터 처리 과정 (간략)
- 클라이언트가 SQL 쿼리를 전송하면, 리스너가 이 요청을 받습니다.
- 리스너는 클라이언트와 데이터베이스 인스턴스 간의 연결을 생성하고, 서버 프로세스에게 요청을 전달합니다.
- 서버 프로세스는 인스턴스의 메모리(SGA, PGA)를 이용하여 데이터를 처리하고, 필요한 경우 데이터베이스 파일에 접근하여 데이터를 읽거나 씁니다.
오라클 서버의 특징
고성능 아키텍처 최신 Intel Xeon 또는 SPARC 프로세서를 기반으로 대규모 워크로드 처리에 최적화
Oracle 소프트웨어에 최적화 Oracle Database, Java 애플리케이션 등과의 통합 성능 극대화
통합 보안 기능 암호화, 메모리 보호, 신뢰할 수 있는 부트 등으로 데이터 및 애플리케이션 보호
최대 가용성 핫스왑 구성 요소, 이중화, 실시간 모니터링으로 다운타임 최소화
확장성 수평 및 수직 확장 모두 지원, 최대 256코어 및 8TB 메모리까지 확장 가능
운영 효율성 Oracle Enterprise Manager를 통한 관리 자동화 및 비용 절감
클라우드 연동 가능 Oracle Cloud Infrastructure와 연동하여 하이브리드 환경 구성 가능
SPARC 서버의 고유 기능 Java 애플리케이션 가속기, Solaris 바이너리 호환성 등 UNIX 환경에 최적화
MS SQLSERVER 서버의 구조
MS SQLSERVER 서버의 특징
T-SQL 지원 ANSI SQL 기반의 Microsoft 고유 확장 언어인 Transact-SQL을 사용
SSMS 제공 SQL Server Management Studio를 통해 GUI 기반 관리 및 쿼리 실행 가능
고가용성 및 복구 기능 Always On, 미러링, 로그 전달, 백업/복구 기능으로 안정성 확보
보안 기능 강화 데이터 암호화, 역할 기반 권한 관리, 행 수준 보안 등 제공
클라우드 및 온프레미스 지원 Azure SQL과 연동 가능하며, Windows/Linux 환경 모두 지원
다양한 에디션 제공 Express (무료), Standard, Enterprise, Developer 등 다양한 용도에 맞춘 버전 존재
복제 및 동기화 기능 여러 위치 간 데이터 복제 및 동기화 가능 (모바일/원격 환경 포함)
확장성과 성능 최적화 인덱스, 파티셔닝, 인메모리 OLTP 등으로 대용량 데이터 처리에 최적화
▪ MariaDB의 특징-- 무료버전
오픈 소스 GPL v2 라이선스를 따르는 자유로운 사용 및 배포 가능
MySQL과 높은 호환성 MySQL API 및 명령어와 거의 동일하여 손쉬운 전환 가능
고성능 및 확장성 대규모 트랜잭션 처리와 빠른 쿼리 성능을 위한 최적화 구조 제공
다양한 스토리지 엔진 Aria, XtraDB, ColumnStore 등 다양한 엔진을 지원하여 유연한 데이터 처리 가능
멀티 소스 복제 여러 마스터로부터 데이터를 복제할 수 있어 복잡한 환경에서도 유연하게 대응 가능
보안 기능 강화 사용자 인증, 암호화, 권한 관리 등 보안 기능 내장
커뮤니티 중심 개발 MariaDB 재단을 중심으로 활발한 커뮤니티 개발과 피드백 반영
설계 과정 :
E-R Diagram(ERD)- https://sum0725.tistory.com/12
ERD 를 한국어로 표현하자면 개체관계도 이다.
*데이터 및 데이터들의 관계를 표현한 도식화된 그림(Diagram)
*엔터티(Entity)란?데이터베이스에 저장할 정보의 주체 혹은 대상 (=테이블)
*카티널리티 (Cardinality) 란?
Entity(테이블)들간의 수적 관계를 명시하는 표현
1:1 관계 : 한 학생은 한 개의 사물함을 갖는다. / 한 사물함은 한명의 학생이 갖는다.
1:n 관계 : 한 학생은 여러 개의 교과서를 갖는다. / 하나의 교과서는 한 명의 학생이 갖는다.
n:n 관계 : 한 학생은 여러 과목을 수강한다. / 한 과목은 여러명의 학생이 수강한다.
ERD 새발표기법!: 새발이 있는 쪽이 없는 쪽의 키를 받는다.
student 테이블(자식)은 department의 deptno (pk,부모) 를 참조받고,
professor의 profno (pk,부모) 를 참조 받는다.

댓글 없음:
댓글 쓰기