4 min to read
SQL과 MySQL
SQL과 MySQL
- SQL은 DB와 통신하는데 사용되는 언어.
- SQL은 구조적 쿼리 언어를 나타냄. 관계형 데이터베이스 관리 시스템의 표준 언어임. 관계형 DB는 행과 열이 있는 스프레드시트와 유사한 테이블에 데이터를 저장함 SQL(Structured Query Language)을 사용하면 사용자는 정보 검색, 추가, 업데이트, 삭제 등 데이터에 대한 다양한 작업을 수행할 수 있음. DB와 통신하기 위해 command와 statements을 사용함.
- SQL commands: CREATE, READ, UPDATE, DELETE 등.(CRUD) 시스템.
- 정보 검색, 추가, 업데이트, 삭제 등 데이터에 대한 다양한 작업을 수행
- Create: DB에 새 데이터를 삽입함.
INSERT
문을 사용. - Read: 원하는 데이터를 얻기.
SELECT
문을 사용. - Updating: 기존 데이터를 변경.
UPDATE
문을 사용. - Deleting: 데이터를 제거.
DELETE
문을 사용.
- Create: DB에 새 데이터를 삽입함.
- 간단한 command와 statements 를 사용해 DB와 상호작용.
- SQL의 command는 일반적으로 일부 정보를 DB에 쿼리하기 때문에
Queries
라고도 함. 이런 쿼리는 테이블의 모든 레코드를 요청하는 것만큼 간단하기도, 여러 테이블과 조건을 포함하는 복잡할수도 있음.
- SQL의 command는 일반적으로 일부 정보를 DB에 쿼리하기 때문에
- SQL을 사용해 DB와 테이블을 생성, 수정, 쿼리 할 수 있음.
- 데이터에 대한 작업 외에도 SQL은 테이블, 인덱스, 조건과 같은 DB 구조의 생성과 수정을
CREATE
,ALTER
를 허용함.
- 데이터에 대한 작업 외에도 SQL은 테이블, 인덱스, 조건과 같은 DB 구조의 생성과 수정을
-
SQL은 데이터베이스와 대화하는 방법.
- SQL문은 SELECT, INSERT, UPDATE, DELETE 와 같은 키워드를 사용해 특정 구문으로 작성됨.
- CREATE: 새 데이터 삽입
- READ: 읽을 새 데이터를 선택
- UPDATE: 기존 데이터를 업데이트하고 수정
- DELETE: 데이터를 제거
-
이런 명령문들은 DB에 의해 실행되어, 원하는 작업을 수행하거나 요청된 데이터를 반환함.
- SQL은 MySQL, Oracle, SQL server 등의 DB 시스템에서 널리 사용함.
- 관계형 데이터베이스 관리 시스템(RDBMS)는 SQL을 활용하지만 각각 고유한 확장이나 변형이 존재할 수 있음.
MySQL의 핵심요소:
- 데이터 구성:
- 테이블이라는 구조를 사용해 데이터를 구성함. 테이블의 각 행은 고유 항목을 나타내고 각 열은 특정 유형의 데이터를 나타냄. 이 구조를 통해 데이터를 효율적으로 배치하고 관리할 수 있음.
-
데이터 검색: MySQL은 데이터 검색용으로 SQL을 사용함. SELECT, WHERE, ORDER BY 같은 SQL 커맨드로 엑세스함.
-
데이터 관계: MySQL은 데이터 관계를 효율적으로 관리하며, 테이블 간 연결을 설정해 JOIN작업을 통해 관련 정보를 효율적으로 검색함.
-
확장성 및 성능: MySQL은 증가하는 데이터 워크로드를 관리하기 위해 구축됨. 올바른 인덱싱 전략과 쿼리 최적화를 통해서 MySQL은 데이터볼륨이 증가하는 경우에도 높은 성능을 유지함.
-
보안: MySQL은 사용자 인증, 엑세스 권한, 암호화 등 강력한 보안기느을 제공함.
-
다중 사용자 지원: MySQL은 데이터베이스에 동시 엑세스 및 상호작용하는 여러 사용자를 처리할 수 있음.
-
유연성: MySQL은 다양한 유형의 데이터를 관리할 수 있고 플랫폼 독립적임. 즉, 다양한 운영체제에서 실행될 수 있고 다양한 환경에 적응할 수 있음.
-
데이터 검색 및 보고: SQL을 사용하면 사용자는 관계형 데이터베이스에서 데이터를 쉽게 검색, 필터링 및 분석할 수 있음.
- 광범위한 채택 및 지원: MySQL 및 PostgreSQL, Oracle 과 같은 관계형 데이터베이스에는 대규모 개발자 및 사용자 커뮤니티가 있어 지속적인 개선 및 정기 업데이트 등이 보장.
관계형 데이터베이스와 MySQL
- 관계형 DB는 데이터를 행과 열이 있는 테이블로 구성하는 전자 파일링 시스템이다.
-
스키마를 사용해 데이터 구성 방법을 정의함. 데이터는 테이블에 저장되며, 각 행은 고유한 레코드를 나타냄. 각 열은 해당 레코드의 특정 속성을 나타냄.
- “Orders” 테이블: 각 행은 고객의 order를 나타냄. “order_id”와 “customer_id”와 같은 열은 “customers” 테이블과의 관계를 설정하고 다른 열은 order에 대한 정보를 포함함.
- “Customer” 테이블: 각 행은 고유한 customer를 나타냄. “ID” 와 “Customer_name” 과 같은 열은 고객 특정 속성을 저장함.
- “Products” 테이블 : 각 행은 구매 가능한 product를 나타냄. “product_id”와 “product_name”과 같은 열은 product 세부 정보를 저장함.
MySQL 관계형 데이터베이스의 장점:
- 간편한 구성
- 효율적인 쿼리
- 데이터 무결성: Primary keys, unique constrains, foreign keys.
- 보안
- 확장성
- 소규모 애플리케이션: 단일 MySQL 서버가 데이터스토리지, 수신 트래픽을 모두 처리하는데 사용됨.
- 중형 시스템: 애플리케이션이 성장함에 따라 중형 시스템은 클러스터로 구성된 여러 MySQL 서버를 사용할 수 있음. 이 클러스터 서버를 사용하면 서버 전체에 로드를 분산하고 더 많은 양의 데이터와 트래픽을 처리할 수 있음.
- 엔터프라이즈급 시스템: 로드 밸런싱과 함께 MySQL 클러스를 사용해 여러 MySQL 노드가 포함되며 로드밸런서는 이런 노드간 들어오는 요청을 분산함. 고가용성, 내결함성 및 매우 큰 데이터 세트, 트래픽을 처리함.
- 호환성: 다양한 프로그래밍 언어와 통함됨.
관계형 데이터베이스의 역할:
- 정리된 데이터구조.
- 데이터 일관성 및 무결성
- 데이터 연결 및 병합: primary key, foreign key 를 사용해 테이블 간 연결을 설정할 수 있음. primary key는 레코드를 고유하게 식별하고 foregin key는 테이블 간의 연결을 생성함. JOIN 작업은 이런 키들을 활용해 다양한 테이블의 데이터를 결합함.
- 적응성 및 확장성: 광범위한 데이터 유형에 적응할 수 있음. 텍스트,숫자, 날짜 등과 같은 다양한 유형을 지원함. 변화하는 데이터 요구사항을 수용하기 위해 확장 및 재구성 가능.
- 데이터 보호
- 데이터 검색 및 보고