<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Shrieya S</title>
    <description>The latest articles on DEV Community by Shrieya S (@shrieya-s).</description>
    <link>https://dev.to/shrieya-s</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3458019%2Fc0f1d273-8523-4be2-8dd2-7820432717f5.png</url>
      <title>DEV Community: Shrieya S</title>
      <link>https://dev.to/shrieya-s</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/shrieya-s"/>
    <language>en</language>
    <item>
      <title>SIMPLE COLLEGE STUDENT SCHEMA</title>
      <dc:creator>Shrieya S</dc:creator>
      <pubDate>Wed, 08 Oct 2025 05:06:17 +0000</pubDate>
      <link>https://dev.to/shrieya-s/simple-college-student-schema-3m8o</link>
      <guid>https://dev.to/shrieya-s/simple-college-student-schema-3m8o</guid>
      <description>&lt;p&gt;MongoDB is one of the most popular NoSQL databases, widely used for scalable and flexible applications. In this tutorial, we’ll perform CRUD (Create, Read, Update, Delete) operations on a college students collection to understand MongoDB better.&lt;/p&gt;

&lt;p&gt;To make it more exciting, we’ll run these queries directly on MongoDB Atlas Cluster (cloud-based MongoDB). Along the way, I’ll include screenshots of my MongoDB Atlas dashboard and outputs so you can follow along visually.&lt;/p&gt;

&lt;p&gt;Creating a Cluster&lt;/p&gt;

&lt;p&gt;Create a free MongoDB Atlas account&lt;/p&gt;

&lt;p&gt;Create a cluster and a database called collegeDB&lt;/p&gt;

&lt;p&gt;Inside it, create a collection called students&lt;/p&gt;

&lt;p&gt;Each student document follows this structure:&lt;/p&gt;

&lt;p&gt;*Create *(Insert)&lt;/p&gt;

&lt;p&gt;Insert at least 5 student records:&lt;/p&gt;

&lt;p&gt;{&lt;br&gt;
student_id: "S001",&lt;br&gt;
name: "Jamie",&lt;br&gt;
age: 19,&lt;br&gt;
department: "CSBS",&lt;br&gt;
year: 2,&lt;br&gt;
cgpa: 8.5&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;{&lt;br&gt;
student_id: "S002",&lt;br&gt;
name: "David",&lt;br&gt;
age: 21,&lt;br&gt;
department: "CSE",&lt;br&gt;
year: 3,&lt;br&gt;
cgpa: 9&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;{&lt;br&gt;
student_id: "S005",&lt;br&gt;
name: "Jonathan",&lt;br&gt;
age: 20,&lt;br&gt;
department: "IT",&lt;br&gt;
year: 3,&lt;br&gt;
cgpa: 7.9&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;Read (Query):-&lt;/p&gt;

&lt;p&gt;Display all student records.&lt;/p&gt;

&lt;p&gt;Fetch all students: {}Find all students with CGPA &amp;gt; 8.&lt;/p&gt;

&lt;p&gt;db.students.find({ cgpa: { $gt: 8 } })&lt;/p&gt;

&lt;p&gt;Find students belonging to the Computer Science department.&lt;/p&gt;

&lt;p&gt;db.students.find({ department: "CSE" })&lt;/p&gt;

&lt;p&gt;Update:-&lt;/p&gt;

&lt;p&gt;Update the CGPA of a specific student.&lt;/p&gt;

&lt;p&gt;{ "student_id": "S005" }&lt;/p&gt;

&lt;p&gt;Increase the year of study for all 3rd year students by 1.&lt;/p&gt;

&lt;p&gt;{ "year": 3 }&lt;/p&gt;

&lt;p&gt;Delete:-&lt;/p&gt;

&lt;p&gt;Delete one student record by student_id.&lt;/p&gt;

&lt;p&gt;{ "student_id": "S004" }🚀 Wrap Up&lt;/p&gt;

&lt;p&gt;In this tutorial, we learned how to:&lt;/p&gt;

&lt;p&gt;Insert new student records&lt;/p&gt;

&lt;p&gt;Query students by CGPA and department&lt;/p&gt;

&lt;p&gt;Update CGPA and year of study&lt;/p&gt;

&lt;p&gt;Delete students based on conditions&lt;/p&gt;

&lt;p&gt;MongoDB CRUD operations form the foundation for building real-world apps like college portals, e-learning systems, or admin dashboards.&lt;/p&gt;

&lt;p&gt;Thanks to &lt;a class="mentioned-user" href="https://dev.to/santhoshnc"&gt;@santhoshnc&lt;/a&gt; sir for his gudiance and support!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fory8i6e1x9qsv0vihadp.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fory8i6e1x9qsv0vihadp.jpeg" alt=" " width="800" height="370"&gt;&lt;/a&gt;sir for guiding and motivating us.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff8fp0qnxf4bd2k6x7pmn.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff8fp0qnxf4bd2k6x7pmn.jpeg" alt=" " width="800" height="370"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg8zl25eh60qu7qq1fwvh.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg8zl25eh60qu7qq1fwvh.jpeg" alt=" " width="800" height="397"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh4rqxa51ezi9g3asbycy.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh4rqxa51ezi9g3asbycy.jpeg" alt=" " width="800" height="334"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzzsnf8seaxr09mbs6jxi.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzzsnf8seaxr09mbs6jxi.jpeg" alt=" " width="800" height="383"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4rfl8qkn1wu92yncebjy.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4rfl8qkn1wu92yncebjy.jpeg" alt=" " width="800" height="347"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl2y3xo2ug6wfu89hcbph.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl2y3xo2ug6wfu89hcbph.jpeg" alt=" " width="800" height="357"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj8qls5vv9vrqdtcsq9r6.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj8qls5vv9vrqdtcsq9r6.jpeg" alt=" " width="800" height="355"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv2ugquer4c4kvsv5qm3m.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv2ugquer4c4kvsv5qm3m.jpeg" alt=" " width="800" height="355"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnyzeqo1axjwkyinv9fv6.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnyzeqo1axjwkyinv9fv6.jpeg" alt=" " width="800" height="348"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkh1581gcbyt14drfehe4.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkh1581gcbyt14drfehe4.jpeg" alt=" " width="800" height="351"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>coding</category>
      <category>learning</category>
      <category>ai</category>
      <category>programming</category>
    </item>
    <item>
      <title>DBMS- Transactions,Deadlock &amp;Log -Based Recovery</title>
      <dc:creator>Shrieya S</dc:creator>
      <pubDate>Wed, 08 Oct 2025 04:38:31 +0000</pubDate>
      <link>https://dev.to/shrieya-s/acid-property-with-sql-transactions-19ek</link>
      <guid>https://dev.to/shrieya-s/acid-property-with-sql-transactions-19ek</guid>
      <description>&lt;p&gt;Working with databases is not just about storing data — it’s about ensuring reliability, atomicity, and consistency, especially when multiple users or processes are involved. In this post, we’ll explore three important concepts using a simple Accounts table:&lt;/p&gt;

&lt;p&gt;✅ Transactions &amp;amp; Rollback (Atomicity)&lt;/p&gt;

&lt;p&gt;🔒 Deadlock Simulation&lt;/p&gt;

&lt;p&gt;📝 Log-Based Recovery&lt;/p&gt;

&lt;p&gt;Setup: The Accounts Table&lt;/p&gt;

&lt;p&gt;CREATE TABLE Accounts (&lt;br&gt;
acc_no INT PRIMARY KEY,&lt;br&gt;
name VARCHAR(50),&lt;br&gt;
balance INT&lt;br&gt;
);INSERT INTO CustomerAccounts VALUES (1, 'Emily', 1000);&lt;br&gt;
INSERT INTO CustomerAccounts VALUES (2, 'Bobby', 1500);&lt;br&gt;
INSERT INTO CustomerAccounts VALUES (3, 'Caleb', 2000);SELECT * FROM CustomerAccounts;Transaction &lt;/p&gt;

&lt;p&gt;Atomicity &amp;amp; Rollback&lt;/p&gt;

&lt;p&gt;Transactions ensure all-or-nothing execution. &lt;/p&gt;

&lt;p&gt;Let’s try transferring 500 from Emily to Bobby, but roll it back midway.&lt;/p&gt;

&lt;p&gt;Deduct 500 from Emily&lt;/p&gt;

&lt;p&gt;UPDATE CustomerAccounts&lt;br&gt;
SET balance = balance - 500&lt;br&gt;
WHERE name = 'Emily';Add 500 to Bobby&lt;br&gt;
UPDATE Accounts&lt;br&gt;
SET balance = balance + 500&lt;br&gt;
WHERE name = 'Bob';&lt;/p&gt;

&lt;p&gt;Rollback transaction&lt;/p&gt;

&lt;p&gt;ROLLBACK;** Check balances**&lt;/p&gt;

&lt;p&gt;SELECT * FROM Accounts;Deadlock Simulation&lt;/p&gt;

&lt;p&gt;Deadlocks occur when two transactions wait on each other’s locks. &lt;/p&gt;

&lt;p&gt;Let’s simulate with two sessions:&lt;/p&gt;

&lt;p&gt;Session 1:&lt;/p&gt;

&lt;p&gt;Lock Emily&lt;br&gt;
UPDATE Accounts SET balance = balance - 100 WHERE name = 'Emily';&lt;/p&gt;

&lt;p&gt;Do NOT commit&lt;/p&gt;

&lt;p&gt;Session 2:&lt;/p&gt;

&lt;p&gt;Lock Bobby&lt;br&gt;
UPDATE CustomerAccounts SET balance = balance - 200 WHERE name = 'Bobby';&lt;/p&gt;

&lt;p&gt;Do NOT commit&lt;/p&gt;

&lt;p&gt;Continuing Session 1&lt;/p&gt;

&lt;p&gt;Try updating Bobby (held by Session2)&lt;br&gt;
UPDATE CustomerAccounts SET balance = balance + 100 WHERE name = 'Bobby';&lt;/p&gt;

&lt;p&gt;Continuing Session 2&lt;/p&gt;

&lt;p&gt;Try updating Emily (held by Session 1)&lt;br&gt;
UPDATE CustomerAccounts SET balance = balance + 200 WHERE name = 'Emily';Log-Based Recovery&lt;/p&gt;

&lt;p&gt;Modern DBMSs use logs (MySQL → Binary Log, PostgreSQL → WAL) to ensure durability and rollback safety.&lt;/p&gt;

&lt;p&gt;Update Caleb&lt;br&gt;
UPDATE CustomerAccounts SET balance = balance + 300 WHERE name = 'Caleb';&lt;/p&gt;

&lt;p&gt;Rollback&lt;br&gt;
ROLLBACK;&lt;/p&gt;

&lt;p&gt;Verify balances&lt;br&gt;
SELECT * FROM CustomerAccounts;&lt;/p&gt;

&lt;p&gt;Wrap Up&lt;/p&gt;

&lt;p&gt;In this tutorial, we covered:&lt;/p&gt;

&lt;p&gt;Transactions &amp;amp; Rollback → Ensures atomicity&lt;/p&gt;

&lt;p&gt;Deadlock Simulation → Shows concurrency pitfalls&lt;/p&gt;

&lt;p&gt;Log-Based Recovery → Demonstrates how databases ensure durability&lt;/p&gt;

&lt;p&gt;These concepts form the backbone of ACID properties in relational databases.&lt;/p&gt;

&lt;p&gt;Special thanks to &lt;a class="mentioned-user" href="https://dev.to/santhoshnc"&gt;@santhoshnc&lt;/a&gt; Sir for guidance throughout this assignment.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz4jykw583w8id2vuwayd.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz4jykw583w8id2vuwayd.jpeg" alt=" " width="800" height="501"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvs98t2l7tlnjn5s5d840.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvs98t2l7tlnjn5s5d840.jpeg" alt=" " width="800" height="526"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnzscwa9ri5c0qe27f2cx.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnzscwa9ri5c0qe27f2cx.jpeg" alt=" " width="800" height="332"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>learning</category>
      <category>sql</category>
      <category>coding</category>
    </item>
    <item>
      <title>Indexing,Hashing and Query Optimization in DBMS</title>
      <dc:creator>Shrieya S</dc:creator>
      <pubDate>Wed, 08 Oct 2025 04:30:48 +0000</pubDate>
      <link>https://dev.to/shrieya-s/indexinghashing-and-query-optimization-in-dbms-387i</link>
      <guid>https://dev.to/shrieya-s/indexinghashing-and-query-optimization-in-dbms-387i</guid>
      <description>&lt;p&gt;Databases handle massive data efficiently using indexes and hashing. Instead of scanning entire tables, indexes act like the index of a book, making lookups faster.&lt;/p&gt;

&lt;p&gt;In this blog, we’ll build a Students table, create B-Tree, B+Tree, and Hash indexes, and run queries to see their effect.&lt;/p&gt;

&lt;p&gt;📖 Key Definitions&lt;/p&gt;

&lt;p&gt;🔹 Indexing&lt;/p&gt;

&lt;p&gt;Indexing is a technique to speed up data retrieval from a database. Instead of scanning the whole table, the database uses an index (like a book index) to locate the rows quickly.&lt;/p&gt;

&lt;p&gt;B-Tree Index&lt;/p&gt;

&lt;p&gt;A B-Tree (Balanced Tree) index stores keys in a sorted order, allowing logarithmic time searches. It is efficient for:&lt;/p&gt;

&lt;p&gt;B+ Tree Index&lt;/p&gt;

&lt;p&gt;A B+ Tree is a variation of the B-Tree where all values are stored in the leaf nodes, and internal nodes only store keys for navigation.&lt;/p&gt;

&lt;p&gt;Hash Index&lt;/p&gt;

&lt;p&gt;A Hash Index uses a hashing function to map keys (like dept) into buckets.&lt;/p&gt;

&lt;p&gt;Query Optimization&lt;/p&gt;

&lt;p&gt;The process of minimising query execution time by leveraging indexes and writing efficient SQL statements.&lt;/p&gt;

&lt;p&gt;Step 1: Create Students Table&lt;/p&gt;

&lt;p&gt;CREATE TABLE Students1 (&lt;br&gt;
roll_no INT PRIMARY KEY,&lt;br&gt;
name VARCHAR2(50),&lt;br&gt;
dept VARCHAR2(20),&lt;br&gt;
cgpa NUMBER(3,2)&lt;br&gt;
);&lt;/p&gt;

&lt;p&gt;Inserting Sample Records&lt;/p&gt;

&lt;p&gt;INSERT INTO Students1 VALUES (101, 'Ana', 'CSBS', 8.5);&lt;br&gt;
INSERT INTO Students1 VALUES (102, 'Paul', 'CSBS', 7.8);&lt;br&gt;
INSERT INTO Students1 VALUES (103, 'Kevin', 'ECE', 9.0);&lt;br&gt;
INSERT INTO Students1 VALUES (104, 'Angelin', 'ME', 8.2);&lt;br&gt;
INSERT INTO Students1 VALUES (105, 'Vanessa', 'CSBS', 8.8);&lt;br&gt;
INSERT INTO Students1 VALUES (106, 'Ria', 'ECE', 7.5);&lt;br&gt;
INSERT INTO Students1 VALUES (107, 'Samuel', 'ME', 8.7);&lt;br&gt;
INSERT INTO Students1 VALUES (108, 'Noah', 'CSBS', 6.9);&lt;br&gt;
INSERT INTO Students1 VALUES (109, 'Marin', 'ECE', 8.0);&lt;br&gt;
INSERT INTO Students1 VALUES (110, 'Joseph', 'CSBS', 9.2);&lt;br&gt;
INSERT INTO Students1 VALUES (111, 'Trinita', 'ME', 7.9);&lt;br&gt;
INSERT INTO Students1 VALUES (112, 'Ryan', 'CSBS', 8.3);&lt;br&gt;
INSERT INTO Students1 VALUES (113, 'Daniel', 'ECE', 9.1);&lt;br&gt;
INSERT INTO Students1 VALUES (114, 'Kane', 'ME', 7.7);&lt;br&gt;
INSERT INTO Students1 VALUES (115, 'Isha', 'CSBS', 8.6);&lt;br&gt;
INSERT INTO Students1 VALUES (116, 'Sarah', 'ECE', 8.4);&lt;br&gt;
INSERT INTO Students1 VALUES (117, 'Merlin', 'ME', 8.0);&lt;br&gt;
INSERT INTO Students1 VALUES (118, 'James', 'CSBS', 7.6);&lt;br&gt;
INSERT INTO Students1 VALUES (119, 'Page', 'ECE', 8.9);&lt;br&gt;
INSERT INTO Students1 VALUES (120, 'Reynolds', 'ME', 8.1);B-Tree Index on roll_no&lt;br&gt;
Most DBMSs use B-Trees to index numeric/ordered columns.&lt;/p&gt;

&lt;p&gt;CREATE INDEX idx_roll_no ON Students1(roll_no);Query with Index&lt;/p&gt;

&lt;p&gt;This fetches details of roll_no = 110 in O(log n) instead of scanning all rows.&lt;/p&gt;

&lt;p&gt;SELECT * FROM Students1 WHERE roll_no = 110;B+ Tree Index on CGPA&lt;br&gt;
B+ Trees are used for range queries, making them perfect for CGPA lookups.&lt;/p&gt;

&lt;p&gt;CREATE INDEX idx_cgpa ON Students1(cgpa);Query&lt;br&gt;
Display all students with a CGPA&amp;gt; 8.0&lt;/p&gt;

&lt;p&gt;SELECT * FROM Students1 WHERE cgpa &amp;gt; 8.0;Hash Index on dept&lt;/p&gt;

&lt;p&gt;Hashing is great for exact matches (not ranges).&lt;/p&gt;

&lt;p&gt;CREATE INDEX idx_dept ON Students1(dept);Query&lt;br&gt;
Retrieve all students from the CSBS department&lt;/p&gt;

&lt;p&gt;SELECT * FROM Students1 WHERE dept = 'CSBS'; &lt;/p&gt;

&lt;p&gt;🚀Wrap Up&lt;/p&gt;

&lt;p&gt;In this tutorial, we explored:&lt;/p&gt;

&lt;p&gt;B-Tree Index → Fast lookup by roll_no&lt;/p&gt;

&lt;p&gt;B+Tree Index → Efficient range queries (CGPA &amp;gt; 8.0)&lt;/p&gt;

&lt;p&gt;Hash Index → Quick equality checks (dept = CSBS)&lt;/p&gt;

&lt;p&gt;Indexes make queries 10x–100x faster, but they also consume storage &amp;amp; slow down inserts/updates. Use them wisely for query optimization!&lt;/p&gt;

&lt;p&gt;Thanks to &lt;a class="mentioned-user" href="https://dev.to/santhoshnc"&gt;@santhoshnc&lt;/a&gt; Sir for guiding me through indexing and query optimization concepts.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2rq71p7pvviiez862kj3.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2rq71p7pvviiez862kj3.jpeg" alt=" " width="800" height="385"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flksw7rwhrkw193e24sj0.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flksw7rwhrkw193e24sj0.jpeg" alt=" " width="800" height="375"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1kpdn2cf6xn2adskffm0.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1kpdn2cf6xn2adskffm0.jpeg" alt=" " width="800" height="377"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>learning</category>
      <category>database</category>
      <category>coding</category>
    </item>
    <item>
      <title>Acid properties with SQL Transaction in DBMS</title>
      <dc:creator>Shrieya S</dc:creator>
      <pubDate>Wed, 08 Oct 2025 04:22:03 +0000</pubDate>
      <link>https://dev.to/shrieya-s/acid-properties-with-sql-transaction-in-dbms-3i3d</link>
      <guid>https://dev.to/shrieya-s/acid-properties-with-sql-transaction-in-dbms-3i3d</guid>
      <description>&lt;p&gt;When working with relational databases, transactions are the building blocks that ensure reliability. &lt;/p&gt;

&lt;p&gt;They follow the ACID properties:&lt;/p&gt;

&lt;p&gt;Atomicity → All or nothing&lt;/p&gt;

&lt;p&gt;Consistency → Valid state before &amp;amp; after&lt;/p&gt;

&lt;p&gt;Isolation → Transactions don’t interfere&lt;/p&gt;

&lt;p&gt;Durability → Changes survive crashes&lt;/p&gt;

&lt;p&gt;In this blog, we’ll explore ACID with SQL scripts using an Accounts table.&lt;/p&gt;

&lt;p&gt;Creating a Database in MySql&lt;/p&gt;

&lt;p&gt;CREATE DATABASE acid_demo;&lt;br&gt;
USE acid_demo;Step 1: Setup the Accounts Table&lt;/p&gt;

&lt;p&gt;CREATE TABLE Accounts (&lt;br&gt;
acc_no INT PRIMARY KEY,&lt;br&gt;
name VARCHAR(50),&lt;br&gt;
balance INT CHECK (balance &amp;gt;= 0)&lt;br&gt;
) ENGINE=InnoDB;&lt;/p&gt;

&lt;p&gt;Insert 3 sample rows.&lt;/p&gt;

&lt;p&gt;INSERT INTO Accounts (acc_no, name, balance) VALUES&lt;br&gt;
(1, 'Sarah', 5000),&lt;br&gt;
(2, 'Jessie', 3000),&lt;br&gt;
(3, 'Benson', 7000);&lt;/p&gt;

&lt;p&gt;Run it.&lt;/p&gt;

&lt;p&gt;Output: &lt;/p&gt;

&lt;p&gt;3 rows insertedCheck the table:&lt;/p&gt;

&lt;p&gt;SELECT * FROM Accounts;Output:&lt;br&gt;
acc_no | name | balance&lt;br&gt;
1 | Sarah| 5000&lt;br&gt;
2 | Jessie | 3000&lt;br&gt;
3 | Benson | 7000&lt;/p&gt;

&lt;p&gt;Atomicity&lt;/p&gt;

&lt;p&gt;Definition: A transaction is atomic, meaning either all operations succeed or none do.&lt;/p&gt;

&lt;p&gt;Example: Transfer 500 from Sarah to Jessie, then rollback&lt;/p&gt;

&lt;p&gt;ROLLBACK:&lt;/p&gt;

&lt;p&gt;START TRANSACTION;&lt;br&gt;
UPDATE Accounts SET balance = balance - 1000 WHERE acc_no = 1;&lt;br&gt;
UPDATE Accounts SET balance = balance + 1000 WHERE acc_no = 2;&lt;br&gt;
ROLLBACK;&lt;/p&gt;

&lt;p&gt;SELECT * FROM Accounts;&lt;/p&gt;

&lt;p&gt;Output:&lt;br&gt;
balances remain unchanged (Sarah=5000, Jessie=3000).&lt;/p&gt;

&lt;p&gt;This proves atomicity: either all updates happen, or none.&lt;/p&gt;

&lt;p&gt;COMMIT:&lt;/p&gt;

&lt;p&gt;START TRANSACTION;&lt;br&gt;
UPDATE Accounts SET balance = balance - 500 WHERE acc_no = 1;&lt;br&gt;
UPDATE Accounts SET balance = balance + 500 WHERE acc_no = 2;&lt;br&gt;
COMMIT;&lt;br&gt;
SELECT * FROM Accounts;&lt;/p&gt;

&lt;p&gt;Output: Sarah=4500, Jessie=3500.&lt;br&gt;
Committed → permanent update.&lt;/p&gt;

&lt;p&gt;Consistency&lt;/p&gt;

&lt;p&gt;Definition: A transaction must bring the database from one valid state to another. &lt;/p&gt;

&lt;p&gt;Rules like constraints must never be violated.&lt;/p&gt;

&lt;p&gt;Example: Try inserting negative balance&lt;/p&gt;

&lt;p&gt;INSERT INTO Accounts (acc_no, name, balance) VALUES (4, 'David', -500);&lt;/p&gt;

&lt;p&gt;Output: Error – CHECK constraint failed.&lt;/p&gt;

&lt;p&gt;Database rejects invalid data → consistency is preserved.&lt;/p&gt;

&lt;p&gt;Isolation&lt;/p&gt;

&lt;p&gt;Definition: Transactions executing at the same time should not interfere with each other.&lt;/p&gt;

&lt;p&gt;Example: Two sessions&lt;/p&gt;

&lt;p&gt;Session 1 (updating):&lt;/p&gt;

&lt;p&gt;START TRANSACTION;&lt;br&gt;
UPDATE Accounts SET balance = balance - 2000 WHERE acc_no = 1;&lt;/p&gt;

&lt;p&gt;Do not commit yet&lt;br&gt;
SELECT balance FROM Accounts WHERE acc_no = 1;&lt;/p&gt;

&lt;p&gt;Session 1 sees the reduced balance (2500).Session 2 (reading at same time):&lt;/p&gt;

&lt;p&gt;SELECT balance FROM Accounts WHERE acc_no = 1&lt;/p&gt;

&lt;p&gt;Durability&lt;/p&gt;

&lt;p&gt;Definition: Once a transaction is committed, its changes persist even if the system crashes.&lt;/p&gt;

&lt;p&gt;Example: Commit, restart DB, check again&lt;/p&gt;

&lt;p&gt;START TRANSACTION;&lt;br&gt;
UPDATE Accounts SET balance = balance + 500 WHERE acc_no = 3;&lt;br&gt;
COMMIT;Check:&lt;/p&gt;

&lt;p&gt;SELECT * FROM Accounts WHERE acc_no = 3;&lt;/p&gt;

&lt;p&gt;Benson’s balance increases (7500).&lt;/p&gt;

&lt;p&gt;Now restart MySQL server&lt;br&gt;
Reconnect, run again:&lt;/p&gt;

&lt;p&gt;USE acid_demo;&lt;br&gt;
SELECT * FROM Accounts WHERE acc_no = 3;&lt;/p&gt;

&lt;p&gt;Balance is still 7500.&lt;br&gt;
This proves durability: committed changes survive restarts.&lt;/p&gt;

&lt;p&gt;🚀Wrap Up&lt;/p&gt;

&lt;p&gt;We demonstrated the ACID properties using SQL:&lt;/p&gt;

&lt;p&gt;🔹 Atomicity → Rollback prevents partial updates&lt;/p&gt;

&lt;p&gt;🔹 Consistency → Constraints keep data valid&lt;/p&gt;

&lt;p&gt;🔹 Isolation → Transactions run independently&lt;/p&gt;

&lt;p&gt;🔹 Durability → Committed changes survive crashes&lt;/p&gt;

&lt;p&gt;These principles ensure that databases remain reliable, safe, and trustworthy, even under concurrent workloads or unexpected failures.&lt;/p&gt;

&lt;p&gt;Thanks to &lt;a class="mentioned-user" href="https://dev.to/santhoshnc"&gt;@santhoshnc&lt;/a&gt; sir for his guidance and support.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffuup2y2t2rcyhzwpqs8u.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffuup2y2t2rcyhzwpqs8u.jpeg" alt=" " width="800" height="321"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8n82d9x2g7oltcllqqwf.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8n82d9x2g7oltcllqqwf.jpeg" alt=" " width="800" height="363"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpomc7cx9iiavt5so3f04.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpomc7cx9iiavt5so3f04.jpeg" alt=" " width="800" height="325"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl03w0g3nwtut95vtjd3f.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl03w0g3nwtut95vtjd3f.jpeg" alt=" " width="800" height="329"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fswwn1lopljtfihdm1wu3.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fswwn1lopljtfihdm1wu3.jpeg" alt=" " width="800" height="340"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>database</category>
      <category>coding</category>
      <category>sql</category>
      <category>learning</category>
    </item>
    <item>
      <title>Cursor and Trigger</title>
      <dc:creator>Shrieya S</dc:creator>
      <pubDate>Wed, 08 Oct 2025 04:11:02 +0000</pubDate>
      <link>https://dev.to/shrieya-s/cursor-and-trigger-2d20</link>
      <guid>https://dev.to/shrieya-s/cursor-and-trigger-2d20</guid>
      <description>&lt;p&gt;When working with databases, sometimes we need to process records row by row (using Cursors) or automatically respond to events (using Triggers).&lt;/p&gt;

&lt;p&gt;In this tutorial, we’ll:&lt;/p&gt;

&lt;p&gt;✅ Create a Cursor that fetches employees with a salary &amp;gt; 50,000&lt;/p&gt;

&lt;p&gt;✅ Build an AFTER-INSERT Trigger to maintain a student audit log&lt;/p&gt;

&lt;p&gt;🔹 Cursor&lt;/p&gt;

&lt;p&gt;A cursor is a pointer that lets you process query results row by row instead of all at once. Useful when applying conditions or logic to each record.&lt;/p&gt;

&lt;p&gt;Step 1: Employee Cursor Example&lt;/p&gt;

&lt;p&gt;Let’s create a cursor to display employee names with salary &amp;gt; 50,000.&lt;/p&gt;

&lt;p&gt;Step i: Create Employee Table&lt;/p&gt;

&lt;p&gt;CREATE TABLE Employees (&lt;br&gt;
Emp_ID NUMBER PRIMARY KEY,&lt;br&gt;
Emp_Name VARCHAR2(50),&lt;br&gt;
Salary NUMBER&lt;br&gt;
);&lt;/p&gt;

&lt;p&gt;Step ii: Insert Sample Data&lt;/p&gt;

&lt;p&gt;INSERT INTO Employees (Emp_ID, Emp_Name, Salary) VALUES (1, 'Renner', 60000);&lt;br&gt;
INSERT INTO Employees (Emp_ID, Emp_Name, Salary) VALUES (2, 'Samuel', 45000);&lt;br&gt;
INSERT INTO Employees (Emp_ID, Emp_Name, Salary) VALUES (3, 'Ana',&lt;br&gt;
75000);&lt;br&gt;
INSERT INTO Employees (Emp_ID, Emp_Name, Salary) VALUES (4, 'Kylie', 50000);Step iii: Cursor Implementation&lt;/p&gt;

&lt;p&gt;DECLARE&lt;br&gt;
CURSOR emp_cursor IS&lt;br&gt;
SELECT Emp_Name, Salary FROM Employees WHERE Salary &amp;gt; 50000;&lt;br&gt;
v_EmpName Employees.Emp_Name%TYPE;&lt;br&gt;
v_Salary Employees.Salary%TYPE;&lt;br&gt;
BEGIN&lt;br&gt;
OPEN emp_cursor;&lt;br&gt;
LOOP&lt;br&gt;
FETCH emp_cursor INTO v_EmpName, v_Salary;&lt;br&gt;
EXIT WHEN emp_cursor%NOTFOUND;&lt;br&gt;
DBMS_OUTPUT.PUT_LINE('Employees: ' || v_EmpName || ', Salary: ₹' || v_Salary);&lt;br&gt;
END LOOP;&lt;br&gt;
CLOSE emp_cursor;&lt;br&gt;
END;&lt;br&gt;
/&lt;/p&gt;

&lt;p&gt;Trigger&lt;/p&gt;

&lt;p&gt;A trigger is a stored program that automatically runs when a specific event occurs (like INSERT, UPDATE, or DELETE).&lt;/p&gt;

&lt;p&gt;Step 2:AFTER INSERT Trigger&lt;/p&gt;

&lt;p&gt;We’ll now create a Students table and a Students_Audit table to keep track of new registrations.&lt;/p&gt;

&lt;p&gt;Step i: Create Students Table&lt;/p&gt;

&lt;p&gt;CREATE TABLE Students2 (&lt;br&gt;
Student_ID NUMBER PRIMARY KEY,&lt;br&gt;
Student_Name VARCHAR2(50),&lt;br&gt;
Course VARCHAR2(50)&lt;br&gt;
);&lt;/p&gt;

&lt;p&gt;Step ii: Create Students_Audit Table&lt;/p&gt;

&lt;p&gt;CREATE TABLE Students_Audit (&lt;br&gt;
Audit_ID NUMBER GENERATED ALWAYS AS IDENTITY PRIMARY KEY,&lt;br&gt;
Student_ID NUMBER,&lt;br&gt;
Student_Name VARCHAR2(50),&lt;br&gt;
Action VARCHAR2(50),&lt;br&gt;
Action_Time TIMESTAMP&lt;br&gt;
);&lt;/p&gt;

&lt;p&gt;Step iii: Create AFTER INSERT Trigger(Trigger Implementation)&lt;/p&gt;

&lt;p&gt;CREATE OR REPLACE TRIGGER trg_after_student_insert&lt;br&gt;
AFTER INSERT ON Students2&lt;br&gt;
FOR EACH ROW&lt;br&gt;
BEGIN&lt;br&gt;
INSERT INTO Students_Audit (Student_ID, Student_Name, Action, Action_Time)&lt;br&gt;
VALUES (:NEW.Student_ID, :NEW.Student_Name, 'INSERT', SYSTIMESTAMP);&lt;br&gt;
END;&lt;br&gt;
/&lt;/p&gt;

&lt;p&gt;Test the Trigger&lt;/p&gt;

&lt;p&gt;INSERT INTO Students2 (Student_ID, Student_Name, Course) VALUES (1, 'Renner', 'Computer Science');&lt;br&gt;
INSERT INTO Students2 (Student_ID, Student_Name, Course) VALUES (2, 'Martin', 'Mechanical Engineering');&lt;/p&gt;

&lt;p&gt;Step iv: Verify Audit Table&lt;/p&gt;

&lt;p&gt;SELECT * FROM Students_Audit;Wrap Up&lt;/p&gt;

&lt;p&gt;In this tutorial, we learned:&lt;/p&gt;

&lt;p&gt;Cursor → Process query results row by row&lt;/p&gt;

&lt;p&gt;Trigger → Automatically log student registrations after insert&lt;/p&gt;

&lt;p&gt;These features add power and automation to SQL programming!&lt;/p&gt;

&lt;p&gt;Thankyou &lt;a class="mentioned-user" href="https://dev.to/santhoshnc"&gt;@santhoshnc&lt;/a&gt; Sir for his valuable guidance and continuous support in successfully completing this DBMS assignment.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk7ym5bkfdmfsr3fe1ssc.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk7ym5bkfdmfsr3fe1ssc.jpeg" alt=" " width="800" height="366"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6t691gmfjqs4gaefaqof.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6t691gmfjqs4gaefaqof.jpeg" alt=" " width="800" height="375"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F32d7qco4db3e1235g02h.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F32d7qco4db3e1235g02h.jpeg" alt=" " width="800" height="376"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcgkr5sm26hl6m8jdgsp6.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcgkr5sm26hl6m8jdgsp6.jpeg" alt=" " width="800" height="367"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0xd2ix4uir7alsqgo15a.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0xd2ix4uir7alsqgo15a.jpeg" alt=" " width="800" height="377"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>sql</category>
      <category>programming</category>
      <category>coding</category>
      <category>learning</category>
    </item>
    <item>
      <title>🚀Database Normalization</title>
      <dc:creator>Shrieya S</dc:creator>
      <pubDate>Wed, 08 Oct 2025 03:47:13 +0000</pubDate>
      <link>https://dev.to/shrieya-s/database-normalization-54oc</link>
      <guid>https://dev.to/shrieya-s/database-normalization-54oc</guid>
      <description>&lt;p&gt;🧩Database normalization is the process of structuring a relational database to reduce redundancy and improve data integrity.&lt;/p&gt;

&lt;p&gt;In this blog, we’ll normalize a student-course-instructor dataset from Unnormalized Form → 1NF → 2NF → 3NF, and implement it in SQL.&lt;/p&gt;

&lt;p&gt;Step 1: Base Table&lt;/p&gt;

&lt;p&gt;The initial unnormalized table includes details of students, their courses, instructors, and corresponding grades.Step 2: Identifying Anomalies&lt;/p&gt;

&lt;p&gt;Insertion anomaly: A new course cannot be added unless it is linked to a student.&lt;/p&gt;

&lt;p&gt;Update anomaly: Modifying a course name requires updating it in several rows.&lt;/p&gt;

&lt;p&gt;Deletion anomaly: Removing a student may also remove valuable course details if that student was the only enrollee.&lt;/p&gt;

&lt;p&gt;First Normal Form (1NF)&lt;/p&gt;

&lt;p&gt;Rule: Eliminate repeating groups, ensure atomic values.&lt;/p&gt;

&lt;p&gt;So, we split multi-valued attributes into separate rows:&lt;/p&gt;

&lt;p&gt;SQL Table in 1 NF,&lt;/p&gt;

&lt;p&gt;CREATE TABLE Students_1NF (&lt;br&gt;
Student_ID INT,&lt;br&gt;
Student_Name VARCHAR2(100),&lt;br&gt;
Course_ID INT,&lt;br&gt;
Course_Name VARCHAR2(100),&lt;br&gt;
Instructor VARCHAR2(100),&lt;br&gt;
Grade CHAR(2),&lt;br&gt;
PRIMARY KEY (Student_ID, Course_ID)&lt;br&gt;
);&lt;/p&gt;

&lt;p&gt;Second Normal Form (2NF)&lt;/p&gt;

&lt;p&gt;Rule: Remove partial dependency → non-key attributes should depend on the whole primary key.&lt;/p&gt;

&lt;p&gt;Here, student_id depends on student info, course_id depends on course info, and instructor depends on the course.&lt;br&gt;
So, we split into three tables:&lt;/p&gt;

&lt;p&gt;SQL Create Tables (2NF):&lt;/p&gt;

&lt;p&gt;CREATE TABLE Students (&lt;br&gt;
StudentID VARCHAR2(10) PRIMARY KEY,&lt;br&gt;
StudentName VARCHAR2(100)&lt;br&gt;
);&lt;/p&gt;

&lt;p&gt;CREATE TABLE Courses (&lt;br&gt;
CourseID VARCHAR2(10) PRIMARY KEY,&lt;br&gt;
CourseName VARCHAR2(100),&lt;br&gt;
Instructor VARCHAR2(100),&lt;br&gt;
InstructorPhone VARCHAR2(15)&lt;br&gt;
);&lt;/p&gt;

&lt;p&gt;CREATE TABLE Enrollments (&lt;br&gt;
StudentID VARCHAR2(10),&lt;br&gt;
CourseID VARCHAR2(10),&lt;br&gt;
PRIMARY KEY (StudentID, CourseID),&lt;br&gt;
FOREIGN KEY (StudentID) REFERENCES Student(StudentID),&lt;br&gt;
FOREIGN KEY (CourseID) REFERENCES Course(CourseID)&lt;br&gt;
);&lt;/p&gt;

&lt;p&gt;Third Normal Form (3NF)&lt;/p&gt;

&lt;p&gt;Rule: Remove transitive dependencies (non-key attributes depending on other non-key attributes).&lt;/p&gt;

&lt;p&gt;Here, instructor_phone depends on instructor, not on course_id. So we separate Instructor data:&lt;/p&gt;

&lt;p&gt;SQL Create Tables (3NF):&lt;/p&gt;

&lt;p&gt;REATE TABLE Instructors (&lt;br&gt;
InstructorID VARCHAR2(10) PRIMARY KEY,&lt;br&gt;
InstructorName VARCHAR2(100),&lt;br&gt;
InstructorPhone VARCHAR2(15)&lt;br&gt;
);&lt;/p&gt;

&lt;p&gt;CREATE TABLE Courses3NF (&lt;br&gt;
CourseID VARCHAR2(10) PRIMARY KEY,&lt;br&gt;
CourseName VARCHAR2(100),&lt;br&gt;
InstructorID VARCHAR2(10),&lt;br&gt;
FOREIGN KEY (InstructorID) REFERENCES Instructor(InstructorID)&lt;br&gt;
);&lt;/p&gt;

&lt;p&gt;CREATE TABLE Students3NF (&lt;br&gt;
StudentID VARCHAR2(10) PRIMARY KEY,&lt;br&gt;
StudentName VARCHAR2(100)&lt;br&gt;
);&lt;/p&gt;

&lt;p&gt;CREATE TABLE Enrollments3NF (&lt;br&gt;
StudentID VARCHAR2(10),&lt;br&gt;
CourseID VARCHAR2(10),&lt;br&gt;
PRIMARY KEY (StudentID, CourseID),&lt;br&gt;
FOREIGN KEY (StudentID) REFERENCES Student3NF(StudentID),&lt;br&gt;
FOREIGN KEY (CourseID) REFERENCES Course3NF(CourseID)&lt;br&gt;
);&lt;/p&gt;

&lt;p&gt;Step 6: Insert Sample Data&lt;/p&gt;

&lt;p&gt;-- Instructors&lt;br&gt;
INSERT INTO Instructor VALUES ('I01', 'Dr. Kumar', '9876543210');&lt;br&gt;
INSERT INTO Instructor VALUES ('I02', 'Dr. Mehta', '9123456780');&lt;br&gt;
INSERT INTO Instructor VALUES ('I03', 'Dr. Rao', '9988776655');&lt;/p&gt;

&lt;p&gt;-- Courses&lt;br&gt;
INSERT INTO Course3NF VALUES ('C101', 'DBMS', 'I01');&lt;br&gt;
INSERT INTO Course3NF VALUES ('C102', 'Data Mining', 'I02');&lt;br&gt;
INSERT INTO Course3NF VALUES ('C103', 'AI', 'I03');&lt;/p&gt;

&lt;p&gt;-- Students&lt;br&gt;
INSERT INTO Student3NF VALUES ('S01', 'Arjun');&lt;br&gt;
INSERT INTO Student3NF VALUES ('S02', 'Priya');&lt;br&gt;
INSERT INTO Student3NF VALUES ('S03', 'Kiran');&lt;/p&gt;

&lt;p&gt;-- Enrollment&lt;br&gt;
INSERT INTO Enrollment3NF VALUES ('S01', 'C101');&lt;br&gt;
INSERT INTO Enrollment3NF VALUES ('S01', 'C102');&lt;br&gt;
INSERT INTO Enrollment3NF VALUES ('S02', 'C101');&lt;br&gt;
INSERT INTO Enrollment3NF VALUES ('S03', 'C103');Step 7: Query with JOINs&lt;/p&gt;

&lt;p&gt;SELECT s.StudentName, c.CourseName, i.InstructorName&lt;br&gt;
FROM Enrollment3NF e&lt;br&gt;
JOIN Student3NF s ON e.StudentID = s.StudentID&lt;br&gt;
JOIN Course3NF c ON e.CourseID = c.CourseID&lt;br&gt;
JOIN Instructor i ON c.InstructorID = i.InstructorID;&lt;/p&gt;

&lt;p&gt;** Wrap Up**&lt;/p&gt;

&lt;p&gt;We started with an unnormalized table and step-by-step applied:&lt;/p&gt;

&lt;p&gt;1NF → Removed repeating groups&lt;/p&gt;

&lt;p&gt;2NF → Removed partial dependencies&lt;/p&gt;

&lt;p&gt;3NF → Removed transitive dependencies&lt;/p&gt;

&lt;p&gt;Result → A clean, normalized database with reduced redundancy, better integrity, and easier queries&lt;/p&gt;

&lt;p&gt;A special thanks to &lt;a class="mentioned-user" href="https://dev.to/santhoshnc"&gt;@santhoshnc&lt;/a&gt; sir for guiding throughout!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwapm3gsiq7asbc4oxcs8.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwapm3gsiq7asbc4oxcs8.jpeg" alt=" " width="800" height="375"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fok88ugq1w1dcc5s8bz8w.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fok88ugq1w1dcc5s8bz8w.jpeg" alt=" " width="800" height="381"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmn0yrwrrlg1ir83x49fw.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmn0yrwrrlg1ir83x49fw.jpeg" alt=" " width="800" height="328"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0ydq4y4i04e8dq1ywahc.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0ydq4y4i04e8dq1ywahc.jpeg" alt=" " width="800" height="378"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>sql</category>
      <category>learning</category>
      <category>coding</category>
    </item>
    <item>
      <title>College Database Management System with Oracle LiveSQL #sql #oracle #database #learning</title>
      <dc:creator>Shrieya S</dc:creator>
      <pubDate>Mon, 25 Aug 2025 13:06:58 +0000</pubDate>
      <link>https://dev.to/shrieya-s/college-database-management-system-with-oracle-livesqlsql-oracle-database-learning-4m96</link>
      <guid>https://dev.to/shrieya-s/college-database-management-system-with-oracle-livesqlsql-oracle-database-learning-4m96</guid>
      <description>&lt;h2&gt;
  
  
  Overview
&lt;/h2&gt;

&lt;p&gt;In this article, I’ll share how I built a College Database Management System using Oracle LiveSQL.&lt;br&gt;
The goal was to design a system that manages students, faculty, and courses while applying SQL concepts like constraints, joins, and views.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Highlights
&lt;/h2&gt;

&lt;p&gt;🔹 Creating tables with proper constraints&lt;br&gt;
🔹 Inserting records into tables&lt;br&gt;
🔹 Altering table structures&lt;br&gt;
🔹 Running queries with string &amp;amp; aggregate functions&lt;br&gt;
🔹 Performing joins&lt;br&gt;
🔹 Defining views for simplified access&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Defining Tables
&lt;/h2&gt;

&lt;p&gt;I began with three main entities: Students, Faculty, and Courses.&lt;/p&gt;

&lt;p&gt;CREATE TABLE Students (&lt;br&gt;
    StudentID NUMBER PRIMARY KEY,&lt;br&gt;
    Name VARCHAR2(50) NOT NULL,&lt;br&gt;
    Dept VARCHAR2(30),&lt;br&gt;
    DOB DATE,&lt;br&gt;
    Email VARCHAR2(50) UNIQUE&lt;br&gt;
);&lt;/p&gt;

&lt;p&gt;CREATE TABLE Faculty (&lt;br&gt;
    FacultyID NUMBER PRIMARY KEY,&lt;br&gt;
    FacultyName VARCHAR2(50) NOT NULL,&lt;br&gt;
    Dept VARCHAR2(30),&lt;br&gt;
    Email VARCHAR2(50) UNIQUE&lt;br&gt;
);&lt;/p&gt;

&lt;p&gt;CREATE TABLE Courses (&lt;br&gt;
    CourseID NUMBER PRIMARY KEY,&lt;br&gt;
    CourseName VARCHAR2(50) NOT NULL,&lt;br&gt;
    Credits NUMBER(2) CHECK (Credits BETWEEN 1 AND 5)&lt;br&gt;
);&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Populating the Tables
&lt;/h2&gt;

&lt;p&gt;Sample student records:&lt;/p&gt;

&lt;p&gt;INSERT INTO Students VALUES (1, 'Aarav Kumar', 'CSE', TO_DATE('2004-05-12','YYYY-MM-DD'), '&lt;a href="mailto:aarav.cs@example.com"&gt;aarav.cs@example.com&lt;/a&gt;');&lt;br&gt;
INSERT INTO Students VALUES (2, 'Meera Reddy', 'EEE', TO_DATE('2003-09-23','YYYY-MM-DD'), '&lt;a href="mailto:meera.ee@example.com"&gt;meera.ee@example.com&lt;/a&gt;');&lt;br&gt;
INSERT INTO Students VALUES (3, 'Vikram Sharma', 'MECH', TO_DATE('2004-01-30','YYYY-MM-DD'), '&lt;a href="mailto:vikram.me@example.com"&gt;vikram.me@example.com&lt;/a&gt;');&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Schema Modification
&lt;/h2&gt;

&lt;p&gt;Later, I added a column for phone numbers to the Students table:&lt;/p&gt;

&lt;p&gt;ALTER TABLE Students&lt;br&gt;
ADD PhoneNo VARCHAR2(10);&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Working with Functions
&lt;/h2&gt;

&lt;p&gt;Query to display names in uppercase and calculate the length of email IDs:&lt;/p&gt;

&lt;p&gt;SELECT UPPER(Name) AS Student_Name_Upper,&lt;br&gt;
       LENGTH(Email) AS Email_Length&lt;br&gt;
FROM Students;&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Connecting Students and Courses
&lt;/h2&gt;

&lt;p&gt;An Enrollments table was introduced to keep track of which student took which course, along with their grade.&lt;/p&gt;

&lt;p&gt;CREATE TABLE Enrollments (&lt;br&gt;
    StudentID NUMBER REFERENCES Students(StudentID),&lt;br&gt;
    CourseID NUMBER REFERENCES Courses(CourseID),&lt;br&gt;
    Grade VARCHAR2(2)&lt;br&gt;
);&lt;/p&gt;

&lt;h2&gt;
  
  
  To simplify, I created a view:
&lt;/h2&gt;

&lt;p&gt;CREATE OR REPLACE VIEW StudentCoursesView AS&lt;br&gt;
SELECT s.Name AS StudentName, c.CourseName, e.Grade&lt;br&gt;
FROM Students s&lt;br&gt;
JOIN Enrollments e ON s.StudentID = e.StudentID&lt;br&gt;
JOIN Courses c ON e.CourseID = c.CourseID;&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Aggregate Queries
&lt;/h2&gt;

&lt;p&gt;Example: average credits of all courses and student count:&lt;/p&gt;

&lt;p&gt;SELECT AVG(Credits) AS AvgCredits,&lt;br&gt;
       COUNT(DISTINCT StudentID) AS TotalStudents&lt;br&gt;
FROM Enrollments e&lt;br&gt;
JOIN Courses c ON e.CourseID = c.CourseID;&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;This project helped me:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Practice constraints and alterations&lt;/li&gt;
&lt;li&gt;Work with joins, views, and aggregates&lt;/li&gt;
&lt;li&gt;Get comfortable with Oracle LiveSQL environment&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It’s a compact project idea for students who want to sharpen their SQL basics while building something meaningful. 🚀&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu01jwaw8r2hoe53kx559.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu01jwaw8r2hoe53kx559.png" alt=" " width="800" height="409"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh4a5zowfd61v50wn17nn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh4a5zowfd61v50wn17nn.png" alt=" " width="800" height="416"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqv56byy6q83k087snj8m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqv56byy6q83k087snj8m.png" alt=" " width="800" height="428"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnnkckha62f846g8wec59.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnnkckha62f846g8wec59.png" alt=" " width="800" height="426"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
