관계형 데이터베이스(Relational Database RDB)란 테이블에 저장된 데이터들이 행(row)과 열(컬럼:Columm)의 형태로 구성되어 있으며, 서로 다른 데이터 구조가 사전에 정의된 관계를 통해 연결되어 있는 데이터 모음입니다. 엑셀의 스프레드 시트와 비슷한 구조를 가지고 있는 것이 주요 특징입니다.
✅ 관계형 데이터베이스 정의
관계형 데이터베이스(Relational Database:RDB)는 데이터를 테이블 형태로 관리하며, 테이블(Table)에는 행(row)과 열(column)의 형태로 데이터가 저장됩니다. RDB는 이러한 테이블들 간의 관계를 이용하여 데이터를 관리하고 연결합니다.
RDB는 데이터의 분류, 정렬, 탐색이 빠르고 용이하며 오랜 기간 사용한 만큼 높은 신뢰성과 데이터의 무결성을 보장해 줍니다.
RDB 기본 용어
열(column)
관계형 DB의 각 열은 고유의 이름을 가지고 있으며, 이 이름은 해당 열이 저장하는 데이터의 의미를 나타냅니다. 예를 들어, “이름”, “나이”, “주소” 등의 열 이름이 될 수 있습니다.
행(row, 레코드)
실직적인 진짜 데이터입니다. 각 행은 해당 테이블에 있는 하나의 레코드를 나타냅니다. 예를 들어, 특정 사람에 대한 정보(이름, 나이, 주소 등)가 테이블의 한 행으로 표현될 수 있습니다.
값(value)
값(value)은 열(column)에 저장되는 실제 데이터나 정보를 의미합니다. 각 행(row)의 열은 해당하는 값들을 가지며, 각 값은 해당하는 열의 데이터 형식에 따라 저장됩니다.
키(key)
키(key)는 관계형 데이터베이스에서 데이터를 식별하거나 정렬하는 데 사용되는 중요한 개념입니다. 데이터베이스 내에서 특정 레코드(행)를 고유하게 식별하거나, 레코드 간의 관계를 구성하거나, 데이터에 빠르게 액세스하기 위해 사용됩니다.
스키마(schema)
데이터베이스의 구조와 제약 조건에 대한 전반적인 명세를 기술한 것으로, 데이터베이스 기본 설계로 이해할 수 있습니다. 테이블에 어떤 종류의 값이 들어 가는지에 대한 정의로써 각 테이블의 이름, 각 열(속성)의 이름과 데이터 유형, 크기, 제약 조건 등을 명시합니다.
✅ 관계(Relationships)
관계(Relationships)는 다른 테이블의 데이터와의 상호 작용을 가능하게 합니다.
크게 3가지로 분류 할 수 있습니다.
One-to-One (일대일 관계)
한 테이블의 각 레코드가 다른 테이블의 한 레코드와만 관련된 경우입니다. 예를 들어, 각 사원은 하나의 사무실을 가진다는 것과 각 사무실은 한 명의 관리자만을 가진다는 것이 이에 해당할 수 있습니다.
One-to-Many (일대다 관계)
한 테이블의 레코드가 다른 테이블의 여러 레코드와 관련된 경우입니다. 가장 흔한 관계 중 하나로, 한 회사에 여러 사원이 속해있는 것이 이에 해당할 수 있습니다.
Many-to-Many (다대다 관계)
두 테이블의 레코드가 서로 여러 개의 연결을 가지는 경우입니다. 이러한 관계는 별도의 연결 테이블을 통해 해결됩니다. 예를 들어, 학생과 과목 간의 관계로 볼 때, 한 학생이 여러 과목을 수강하고 여러 학생이 같은 과목을 수강하는 경우가 이에 해당합니다.
목차✅ 관계형 데이터베이스 정의✅ 관계(Relationships)✅ 관계형 DBMS 종류 1. 데이터베이스란 데이터베이스(DataBase:DB)는 데이터가 모여 있는 저장소입니다. 저장소는 구조화 된 정보 또는 데이터의 조직화 되어 있는 모음입니다. 데이터베이스에는 IT를 포함한 여러 분야에서 폭 넓게 사용되고 있습니다. 카카오톡이나 네이버 라인 등을 이용해 발송한 메시지, 버스/지하철의 교통카드, 네이버 쇼핑 및 네이버 주문 등을 통해 구매한 정보 등이…
MySQL과 MariaDB는 둘 다 오픈 소스 데이터베이스입니다. 데이터베이스에서 행과 열이 있는 테이블(표) 형식으로 데이터를 저장하고 관리할 수 있습니다. 수 많은 웹사이트와 애플리케이션에서 사용하고 있으며, MySQL은 1994년에 개발을 시작해 2010년에 선마이크로시스템에 인수되었으며, 같은 해 선마이크로시스템이 오라클에 인수되면서 오라클의 서비스가 되었습니다. 목차✅ 관계형 데이터베이스 정의✅ 관계(Relationships)✅ 관계형 DBMS 종류MySQL 현재 MySQL은 교육용과 개인에게는 무료(오픈 소스)로…
MariaDB에서 Slow Query Log 설정을 할 경우 Mariadb 10.2 버전부터 etc/my.cnf.d/ 폴더안에 mysql-clients.cnf 및 server.cnf 파일로 나뉘게 되었습니다. mysql 이라도 폴더를 확인한 후에 설정 내역에 따라 확인하면 되겠습니다. 먼저 etc/my.cnf.d/server.cnf 파일에 적용하는 방법에 대해 알아 보겠습니다. ※ Slow Query Slow Query는 수행하는 데 오랜 시간이 걸리는 쿼리입니다. 응답 시간이 길어질 경우 서비스의 품질이…
MySQL에서 ‘Grant All Privileges’ 명령어는 유저가 데이터베이스에 접근할 수 있는 권한을 부여할 때 사용합니다. test라는 데이터베이스의 모든 테이블(*)에 testuser가 외부에서의 접근을 허용하는 것을 의미합니다. 목차✅ 관계형 데이터베이스 정의✅ 관계(Relationships)✅ 관계형 DBMS 종류Grant All Privileges 호스트 예시 MySQL Grant All Privileges는 사용자 계정에 MySQL 작업을 규제하고 실행할 수 있는 권한을 부여하는 관리 명령문입니다. 새로운 사용자가…
mariadb-check 명령어는 여러 테이블을 검사, 복구, 분석 및 최적화 할 수 있는 유지 관리 도구입니다. mariadb-check은 myisamchk 및 aria_chk과 다르게 서버에서 MariaDB가 실행 중이어야 합니다. mariadb-check 명령어 mysqlcheck 명령어와 동일한 명령어입니다. 10.5 이전 버전에서는 클라이언트에서 호출했으며, 기본 사용 방법은 다음과 같습니다. 목차✅ 관계형 데이터베이스 정의✅ 관계(Relationships)✅ 관계형 DBMS 종류 ✅ mariadb-check 명령어 기본…
DBMS인 MariaDB를 설치하면 MariaDB cnf 파일 설정을 하게 되는데 MySQL MariaDB 환경설정 파일 mycnf는 /etc/my.cnf 경로에 있으며, /etc/my.cnf.d/ 디렉토리를 포함하는 설정이 기본으로 잡혀 있습니다. 11.3 버전 설치 시 화면입니다. 목차✅ 관계형 데이터베이스 정의✅ 관계(Relationships)✅ 관계형 DBMS 종류 ✅ MariaDB cnf 파일 구성: /etc/my.cnf.d 디렉토리 /etc/my.cnf.d 디렉토리 내의 구성은 다음과 같습니다. ✅ MariaDB Client와…