본문 바로가기

SQL5

1. 데이터베이스 설계 및 아키텍처 - (1) Louis와 Paul의 관계형 데이터베이스 디자인 10가지 원칙_2 6. 커서보다는 집합을 이용하자SQL Server 개발에서 자주 범하는 실수 중 하나는 T-SQL 커서 형태로 코드를 작성하는 것이다.거의 대부분의 사람들이 커서가 얼마나 나쁜지에 대해서 여러 차례 들어보았을 것이다.데이터베이스 커서를 사용하는 것은 은행에 가서 수백만원을 입금할 때 한 번에 만원씩 수백번을 입금하는 것과 같다고 할 수 있다.집합 기반의 솔루션 개념으로는 한 번에 수 백만 원을 입금해버리면 된다.동일한 결과(입금한 돈이 헤아려지고 입금되는 것)가 이루어지지만, 매번 입금할 때마다 은행 창구 직원이 얼마가 입금되었다라는 말을 듣지 않아도 된다.성능의 차이는 명백하다.일반적으로 집합 기반의 솔루션이 반복 처리 형태의 솔루션보다 더 좋은 성능을 내며 그 차이도 상당하다.물론 커서를 사용하는 방.. 2025. 2. 6.
1. 데이터베이스 설계 및 아키텍처 - (1) Louis와 Paul의 관계형 데이터베이스 디자인 10가지 원칙_1 1. 역정규화는 성능을 지배한다데이터베이스 개발과 관련된 격언 중에는 "먼저 문제가 될 때까지 정규화를 하고, 그 다음에 제대로 동작할 때까지 역정규화를 해라."라는 말이 있다.말도 안되는 소리이다!SQL Server 6.5 또는 그 이전 버전에서는 OLTP 데이터베이스에서 역정규화를 하는 것이 더 나은 성능을 발휘할 수도 있었다.하지만, 요즘 시대에 통하는 말은 아니다.OLTP 또는 (보고서 서비스나 BI가 아닌) 운영 데이터베이스의 경우 정규화된 스키마에 적절하게 인덱스만 설정되어 있다면 역정규화된 스키마에 비해 항상 더 좋은 성능을 낼 수 있다.정규화된 디자인에서는 '이중으로 insert 하고 update를 해야 한다'라는 것과 데이터 조회 시 역정규화된 데이터를 피벗팅(pivoting)해야 한다는.. 2025. 2. 6.
Java 와 Python의 ORM(Object Relational Mapping) 프레임워크 DB 관리 비교 SQLAlchemy(Python)와 Hibernate(Java)는 각각 객체지향적으로 데이터베이스를 관리할 수 있는 ORM(Object-Relational Mapping) 프레임워크입니다. ORM은 데이터베이스의 테이블을 객체로 매핑해 코드에서 SQL 쿼리를 작성하는 대신 객체를 통해 데이터베이스와 상호작용하도록 해 주기 때문에, 객체지향 언어에서의 데이터베이스 관리가 더욱 직관적이고 간편해집니다.아래에서는 SQLAlchemy와 Hibernate를 비교하여 공통점과 차이점을 설명하겠습니다.1. SQLAlchemy와 Hibernate 개요SQLAlchemy (Python): SQLAlchemy는 Python에서 가장 널리 사용되는 ORM 프레임워크 중 하나입니다. SQLAlchemy는 데이터베이스와의 연결.. 2024. 11. 14.
JDBC DBConnection 과정과 Python DBClass 접속 관리 과정 비교 Java의 JDBC (Java Database Connectivity)와 Python의 DBClass 연결 관리는 데이터베이스와의 연결을 처리하는 방식에서 몇 가지 공통점과 차이점을 가지고 있습니다. 아래에서 각 언어의 데이터베이스 연결 관리 과정과 그 차이점, 공통점을 설명합니다. 1. JDBC DBConnection 과정 (Java)JDBC는 Java에서 데이터베이스에 연결하기 위한 표준 API로, SQL 기반 데이터베이스에 접근할 수 있도록 지원합니다. JDBC는 Java의 java.sql 패키지 내의 클래스를 통해 데이터베이스 연결, 쿼리 실행, 결과 처리 등을 수행할 수 있습니다. JDBC DBConnection 단계: 1. JDBC 드라이버 로드: JDBC는 각 데이터베이스가 제공하는 드라이버.. 2024. 11. 14.
mysql, oracle, mssql, postgres의 공통점과 차이점 MySQL, Oracle, MSSQL, and PostgreSQL는 모두 관계형 데이터베이스 관리 시스템(RDBMS)으로, 데이터 관리를 위해 SQL(Structured Query Language)을 사용한다는 공통점이 있지만, 여러 면에서 차이점도 존재합니다. 아래에 각 데이터베이스의 공통점과 차이점을 정리해 보았습니다.공통점SQL 지원: 모든 데이터베이스는 SQL을 사용해 데이터 검색, 삽입, 수정, 삭제 등의 작업을 수행할 수 있습니다.트랜잭션 지원: 트랜잭션 관리 기능을 제공하여 데이터 일관성과 무결성을 유지합니다.데이터 무결성: 모든 데이터베이스는 기본키, 외래키, 유니크 등의 제약 조건을 통해 데이터 무결성을 보장합니다.다중 사용자 및 동시성 제어: 여러 사용자가 동시에 데이터에 접근해도 데이.. 2024. 11. 13.